Redis
Redis是一个key-value存储系统。它支持存储多种value类型,包括string(字符串)、list(链表)、set(集合)、zset(sorted set –有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。Redis将数据都是缓存在内存中。Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
特色:
速度快
持久化
支持多种数据类型
功能丰富【还支持事务、流水线、发布/订阅、消息队列等功能】
高可用及分布式
Ehcache
Ehcache 是设计于提高在数据从RDBMS中取出来的高花费、高延迟而采取的一种缓存方案,主要面向通用缓存,Java EE和轻量级容器,具有内存和磁盘存储,缓存加载器,缓存扩展,缓存异常处理程序,支持REST等特点。
特色:
多种缓存策略
快、简单、轻量、易拓展
具有缓存和缓存管理器的侦听接口
缓存数据有两级:内存和磁盘
支持多缓存管理器实例,以及一个实例的多个缓存区域
提供Hibernate的缓存实现
缓存数据会在虚拟机重启的过程中写入磁盘
memcache
memcache 是一种高性能、分布式对象缓存系统,可以想象成一个大的内存HashTable,即key-value键值缓存。
特色:
多线程支持
高性能
redis与memcached比较:
redis可以用来做存储(storage),而memcached是用来做缓存(cache),memecached一旦关机重启内存数据就丢失了,redis是保存在磁盘,不会丢失。
redis中存储的数据有多种结构,而memcached存储的数据只有一种类型“字符串”。
redis与ehcache比较:
ehcache:直接在jvm虚拟机中缓存,速度快,效率高;但是缓存共享麻烦,集群分布式应用不方便,而且只支持java语言,其他语言不支持。
redis:是通过socket访问到缓存服务,效率比ecache低,比数据库要快很多,处理集群和分布式缓存方便,有成熟的方案,支持绝大部分语言。
建议:
如果是单个应用或者对缓存访问要求很高的应用,用ehcache。
如果是大型系统,存在缓存共享、分布式部署、缓存内容很大的,建议用redis。
网友回复
DLNA与UPnP的区别和不同?
苏超自建抢票app,通过先预约再抽签化解高并发抢票?
python如何让给电脑在局域网中伪装成电视接收手机的投屏图片视频播放?
如何结合python+js如何自己的视频编码与加密播放直播?
python如何在电脑上通过局域网将本地视频或m3u8视频投屏电视播放?
腾讯视频爱奇艺优酷vip电影电视剧视频如何通过python绕过vip收费直接观看?
有没有可免费观看全球电视台直播m3u8地址url的合集?
有没有实现观影自由的免vip影视苹果 CMS V10 API的可用url?
python如何实时检测电脑usb插入检测报警?
如何判断真人操作的鼠标移动直线轨迹与机器操作的轨迹?