文档章节

Ehcache和MemCached比较分析

浮躁的码农
 浮躁的码农
发布于 2015/07/24 23:22
字数 464
阅读 2159
收藏 12
项目 
Memcache Ehcache
分布式 
不完全,集群默认不实现 
支持 
集群 
可通过客户端实现 
支持(默认是异步同步) 
持久化 
可通过第三方应用实现,如sina研发的memcachedb,将cache的数据保存到[url=]Berkerly DB[/url] 

支持。持久化到本地硬盘,生成一个.data和.index文件。cache初始化时会自动查找这两个文件,将数据放入cache
效率 
高 
高于Memcache
容灾 
可通过客户端实现。 
支持 
缓存数据方式 

缓存在memcached server向系统申请的内存中 

可以缓存在内存(JVM中),也可以缓存在硬盘。通过CacheManager管理cache。多个CacheManager可配置在一个JVM内,CacheManager可管理多个cache。 

缓存过期移除策略 

LRU

[url=]LRU([/url]默认),FIFO,LFU 

缺点 

功能不完善,相对于Ehcache效率低 

只适用于java体系,只能用java编写客户端 

优点 

简洁,灵活,所有支持socket的语言都能编写其客户端 

效率高。功能强大。 


最近研究了一下缓存技术,主要比较了一下memcached和ehcache。 
ehcache是纯java编写的,通信是通过RMI方式,适用于基于java技术的项目。 
memcached服务器端是c编写的,客户端有多个语言的实现,如c,php(淘宝,sina等各大门户网站),python(豆瓣网),java(Xmemcached,spymemcached)。memcached服务器端是使用文本或者二进制通信的。memcached的 python客户端没有开源,其他语言的好像都开源了。另外我以前不明白为什么各大互联网公司都是使用memcached缓存,后来我明白了原因:因为各大门户网站以及淘宝是使用php编写的网站,memcached有php客户端,而ehcache是纯java的,囧。

本文转载自:

浮躁的码农

浮躁的码农

粉丝 71
博文 856
码字总数 156434
作品 0
松江
程序员
私信 提问
Hibernate 和 memcached 的集成问题

做过的项目中Hibernate都是直接采用ehcache做为缓存,ehcache是一个好东西,采用内 存+文件系统结合可以胜任大多数情况,而且Hibernate和ehcache简直就是天造地设的一对,配合非常之默契。 ...

红薯
2009/01/10
3.4K
4
Playframework之cache

Cache实现 Play容器启动时(play.Play.start()),调用play.cache.Cache.init() 检查application.conf配置文件中,是否开启了memcached a) 未开启memcached则开启一个ehcache实例 b) 若开启mem...

2k10
2015/03/20
0
0
深入理解分布式系统中的缓存架构(上)

本文主要介绍大型分布式系统中缓存的相关理论,常见的缓存组件以及应用场景。 1 缓存概述 缓存概述 2 缓存的分类 缓存主要分为以下四类 缓存的分类 2.1 CDN缓存 基本介绍 CDN(Content Delive...

Java填坑之路
2018/07/13
0
0
快速掌握:大型分布式系统中的缓存架构

本文主要介绍大型分布式系统中缓存的相关理论,常见的缓存组件以及应用场景。 缓存概述 缓存概述 缓存的分类 缓存主要分为四类,如下图: 缓存的分类 CDN 缓存 CDN(Content Delivery Network...

技术小能手
2018/08/06
0
0
BlackHole开发日记-几种缓存方式性能测试

早上做了ehcache的benchmark,set和get一个40k的字符串(压缩到19k)到ehcache。10000次set和get操作,每次都使用不同的key。 ehcache的测试结果(10000次): 结果相当令人满意。 作为对比,使用...

黄亿华
2012/12/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

微信小程序和百度小程序开发的一些不同点

1: initActive从onload放到onready中 2: bindtap='{{childTickeData.freeadd?"childticket":""}}',语法错误。会导致页面加载不出来,而且也不报任何错。 3:使用搬家工具,支付api名称转换......

醉雨
19分钟前
1
0
最近执行过的SQL语句查询

SELECT TOP 1000 ST.text AS '执行的SQL语句' , QS.execution_count AS '执行次数' , QS.total_elapsed_time / 10000 AS '耗时' , QS.total_logical_reads AS '逻辑读取次数' , QS.total_lo......

神手--追魂
21分钟前
2
0
从濒临解散到浴火重生,OceanBase 这十年经历了什么?

阿里妹导读:谈及国产自研数据库,就不得不提 OceanBase。与很多人想象不同的是,OceanBase 并非衔着金钥匙出生的宠儿。相反,它曾无人看好、困难重重,整个团队甚至数度濒临解散。 从危在旦...

阿里云官方博客
24分钟前
1
0
阿里开发者招聘节 | 面试题02-04:给定一个二叉搜索树(BST),找到树中第K小的节点

为帮助开发者们提升面试技能、有机会入职阿里,云栖社区特别制作了这个专辑——阿里巴巴资深技术专家们结合多年的工作、面试经验总结提炼而成的面试真题这一次将陆续放出(面试题官方参考答案...

阿里云云栖社区
41分钟前
3
0
使用Redis SETNX 命令实现分布式锁

基于setnx和getset http://blog.csdn.net/lihao21/article/details/49104695 使用Redis的 SETNX 命令可以实现分布式锁,下文介绍其实现方法。 SETNX命令简介 命令格式 SETNX key value 将 ke...

彬彬公子
41分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部