Redis和Memcache的异同

普通比较:
1、Redis和Memcache都是将数据存放在内存中,都是内存数据库;不过,memcache可以缓存其他内容,如:图片、视频等等;
2、Redis不仅仅支持简单的K/V类型的数据,同时还提供List set hash等数据结构的存储;
3、虚拟内存——Redis当物理内存用完时,可以将一些很久没用到的value交换到磁盘;
4、过期策略——memcache在set时就指定,例如:set key1008永不过期。Redis可以通过expire设定,例如:expire name 10;
5、分布式——设定memcache集群,利用magent做一主多从,Redis可以做一主多从,即都可一主一从;
6、存储数据安全——memcache挂掉后,数据没了;Redis可以定期保存到磁盘(持久化);
7、灾难恢复——memcache挂掉后,数据不可恢复;Redis数据丢失后可以通过aof恢复;
8、Redis支持数据的备份,即master-slave模式的数据备份;
9、应用场景不同:Redis除作为NoSQL数据库使用外,还能用到消息队列、数据堆栈和数据缓存等等,Memcache适合于缓存SQL语句、数据集、用户临时数据、延迟查询数据和Session等;

Redis和Memcache都是基于内存的数据存储系统。Memcache是高性能分布式内存缓存服务;Redis是一个开源的key-value存储系统。与Memcache类似,Redis将大部分数据存储到内存中,支持的数据类型包括:字符串、哈希表等数据类型的相关操作。

相关资料中,相对较严谨的比较:
1、redis支持服务器端的数据操作:Redis相比Memcache来说,拥有更多的数据结构和支持更丰富的数据操作,通常在memcache里,你需要将数据拿到客户端进行类似的修改再set进去。这大大增加了网络IO的次数和数据体积。在Redis中,这些复杂的操作通常和一般的GET/SET一样高效。所以,如果需要缓存能够支持更复杂的结构和操作,首选redis;
2、内存使用效率对比:使用简单的key-value存储的话,Memcache的内存利用率更高,而如果Redis采用hash结构来做key-value存储,由于其结合的压缩,其内存利用率会高于Memcache;
3、性能对比:由于Redis使用单核,而memcache可以使用多核,所以平均每一个核上Redis在存储小数据时比Memcache性能更高。而在100k以上的数据中,memcache性能要高于Redis,虽然redis最近也在存储大数据的性能上进行优化,但是比起memcache还是稍有逊色。

Redis和memcache的区别:
1、两者都是内存数据库;
2、Redis支持更多的数据类型;
3、Memcache的过期时间必须在值创建时确定,redis可以用expire修改;
4、Redis可以持久化数据到磁盘;
5、Redis支持aof恢复数据;
6、Redis支持消息队列。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值