ehcache2.8.3入门示例:hello world
2014-08-12 21:44
288 查看
@Test public void testTimeToIdleSecondsAndTimeToLiveSeconds() throws InterruptedException { CacheManager manager = CacheManager.create(); Cache myCache = new Cache("MyCache", 1, true, false, 0, 0); // Cache上设置为永不过期 manager.addCache(myCache); String key = "A"; System.out.println("-------------------------"); Element elementPut = new Element(key, "Some Value", 2, 5); // timeToIdleSeconds为2秒,timeToLiveSeconds为3秒 myCache.put(elementPut);// 放入缓存 System.out.println(myCache.get(key));// 取出显示 Thread.sleep(1600);// 停1.6秒 System.out.println(myCache.get(key));// 再次取出(1.6s < min(2 ,5),还"活"着) Thread.sleep(1600);// 停1.6秒 System.out.println(myCache.get(key));// 总时间已达3.2s,< min((1.6+2) ,5),还"活"着) Thread.sleep(1600);// 停1.6秒 System.out.println(myCache.get(key));// 总时间已达4.8s,< min((3.2+2) ,5),还"活"着) Thread.sleep(500);// 停0.5秒 System.out.println(myCache.get(key));// 总时间已达4.8+0.5=5.3s,> min((4.8+2) ,5),过期) }
View Code
输出结果
[ key = A, value=Some Value, version=1, hitCount=1, CreationTime = 1407898480892, LastAccessTime = 1407898480897 ]
[ key = A, value=Some Value, version=1, hitCount=2, CreationTime = 1407898480892, LastAccessTime = 1407898482499 ]
[ key = A, value=Some Value, version=1, hitCount=3, CreationTime = 1407898480892, LastAccessTime = 1407898484099 ]
[ key = A, value=Some Value, version=1, hitCount=4, CreationTime = 1407898480892, LastAccessTime = 1407898485699 ]
null
关于这二个参数的设置,个人建议是:
a) 如果缓存的数据本身不存在更新(比如:一些几乎从来不动的基础数据),只设置timeToIdleSeconds,这样的好处是,如果缓存项一直有人在访问,就永远不会过期,反之,如果没人用,空闲一段时间后,会自动过期,释放资源
b) 如果缓存的数据本身存在定期的更新问题(比如:天气预报之类每隔几小时,db中会更新的数据),可同时设置二个参数,timeToLiveSeconds的值应该要小于db中的更新周期,这样db中的数据变化后,过一段时间就会更新到缓存中
相关文章推荐
- 【转】spring MVC入门示例(hello world demo)
- spring MVC入门示例(hello world demo)
- cala开发编程入门Hello World示例
- Zend Framework入门之环境配置及第一个Hello World示例(附demo源码下载)
- ehcache入门基础示例
- ehcache入门基础示例
- spring MVC入门示例(hello world demo)
- AngularJS入门示例之Hello World详解
- ehcache入门基础示例
- struts2入门示例(hello world)
- Zend Framework入门之环境配置及第一个Hello World示例(附demo源码下载)
- java入门教程-1.6第一个Java程序示例——Hello World!
- ehcache入门基础示例
- PHP快速入门教程:服务器和浏览器变量获取示例
- IronPython for ASP.NET入门教程示例下载
- java socket编程入门与示例
- PHP快速入门教程:hello world
- PHP快速入门教程:服务器和浏览器变量获取示例
- Castle Active Record for .NET2.0快速入门示例
- PHP快速入门教程:hello world