Ehcache我们见的少,但是应该都是用过的,比如我们使用的mybatis或者hibernate就是使用这个来做的缓存,而Ehcache对于java还是非常友好的,所以如果和java项目结合是比较快捷高效友好的,而他的缺点也是非常明确的,就是仅仅在单体架构没有问题,因为他是不支持分布式和集群的。


Memcache我们应该是比较常见到的缓存方案,他针对于redis来说的优点就是多核多线程,也因此对于内存的使用率是非常高的,但是他的缺点就是无法持久化,如果宕机的话,数据是无法恢复,这个也是他非常大的缺点


我们在项目中常常用到的就是redis了,他的数据类型非常多,不像Memcache他就只支持string类型,redis支持string,list,hash等,而他有个缺点就是支持单线程,单核,性能方面不如 Memcache,但是作者也正是因为考虑到多核多线程问题也会很多,所以建议我们通过多做节点的方式来处理,而redis最大的有点就是数据可以持久化了,对于memcache来说是非常好的一点。


网友评论