Ehcache与Memcache的区别

文章目录

  • Ehcache是纯Java编写的,通信是通过RMI方式,适用于基于Java技术的项目,公用JVM内存。
  • Memcache服务器端是C编写的,客户端有多个语言的实现,如C,PHP(淘宝,sina等各大门户网站),python(豆瓣网),java(Xmemcached,spymemcached),独立在JVM进程外,使用独立的内存区。
项目 Memcache Ehcache
分布式 不完全,集群默认不实现 支持
集群 可通过客户端实现 支持(默认是异步同步)
持久化 可通过第三方应用实现,如sina研发的memcachedb,将cache的数据保存到Berkerly DB中 支持,持久化到本地硬盘,生成一个.data和.index文件。cache初始化时会自动查找这两个文件,将数据放入cache
效率 高于Memcache
容灾 可通过客户端实现 支持
缓存数据方式 缓存在memcached server向系统申请的内存中 可以缓存在内存(JVM中),也可以缓存在硬盘。通过CacheManager管理一个或多个cache。多个CacheManager可配置在一个JVM内
缓存过期移除策略 LRU LRU(默认),FIFO,LFU
缺点 功能不完善,相对于Ehcache效率低 只适用于java体系,只能用java编写客户端
优点 简洁,灵活,所有支持socket的语言都能编写其客户端 效率高,功能强大

你可能感兴趣的:(Redis,ehcache,memcached,内存管理)