各种缓存技术及使用场景

来源:互联网 发布:智慧镇江网络错误 编辑:程序博客网 时间:2024/05/18 02:16

可做缓存的技术,Ehcache, Linkedhashmap, Memcached, Redis,视需求而定

LinkedHashMap 和Ehcache都是单机缓存技术,即只能在一个应用内实现缓存,不能实现多台机器使用相同的缓存区域(分布式缓存)

LinkedHashMap

的底层是用HashMap实现的,特点元素的排序是按链表方式排序,按写入或输出的顺序排序,最后一次写入或读取的元素放到最后

    Map<String, String> map = new LinkedHashMap<String, String>(16, 0.75f, true);          for (int i = 0; i < 10; i++) {              map.put("key" + i, "value" + i);          }          map.get("key" + 3);          map.get("key" + 3);          map.get("key" + 9);          map.put("key" + 11, "value" + 11);          for (String value : map.keySet()) {              System.out.println(value);          }  
输出:

key0key1key2key4key5key6key7key8key3key9key11
Ehcache

LinkedHashMap 只是一个JDK自带的类,而Ehcache是一个外部jar包,是java领域常用的缓存框架,鼎鼎大名的hibernate都是用Ehcache,但ehcache也可用使用某些技术支持在群集环境中使用,例如:

http://www.ibm.com/developerworks/cn/java/j-lo-ehcache/

http://www.cnblogs.com/yangy608/archive/2011/10/07/2200669.html
Memcached
Memcached是分布式缓存技术,需要独立部署,使多台机器可以使用同一个缓存服务器,实现集群的缓存共享。

Redis

Redis同样是分布式缓存技术,比Memcached更新,支持的数据类型更多,使用更方便,最重要的是:Memcached的数据只能存在内存中,重启后即消失,而Redis可以持久化,因此Redis可以作为一个NoSql数据库使用。如果没有历史遗留系统,初次引入缓存框架,建议用redis

两者比较的文章:

http://blog.csdn.net/tonysz126/article/details/8280696

http://blog.sina.com.cn/s/blog_72995dcc01018qkf.html

http://zhu-zhiguo.iteye.com/blog/2145253

http://stackoverflow.com/questions/2873249/is-memcached-a-dinosaur-in-comparison-to-redis


原创粉丝点击