memcacha与redis的优缺点

redis和memcached的区别

  • Redis和Memcached都是将数据存放在内存中,都是内存数据库,
  • Redis不仅仅支持简单的k/v类型的数据,同时还提供list、set、hash等数据结构的存储
  • 虚拟内存--Redis当物理内存用完时,可以将一些很久没用到的value交换到磁盘
  • 过期策略--memcache在set时就指定,例如set key1 0 0 8,即永不过期。Redis可以通过例如expire设定,例如expire name 10;
  • 分布式--设定memcached集群,利用magent做一主多从;redis可以做一主多从。都可以一主一从
  • 存储数据安全--memcache挂掉后,数据没了;redis可以定期保存到磁盘(持久化)
  • 灾难恢复--memcached挂掉后,数据不可恢复;redis数据丢失后可以通过aof恢复(RDB)
  • Redis支持数据的备份,即master-slave模式的数据备份

上转---原文链接:https://www.jianshu.com/p/bda760565a2a
 

Redis 和 Memcached 都是基于内存的数据存储系统。

Memcached是高性能分布式内存缓存服务,其本质上就是一个内存key-value数据库。

Redis是一个开源的key-value存储系统。与Memcached类似,Redis将大部分数据存储在内存中,支持的数据类型包括:字符串、哈希表、链表、集合、有序集合以及基于这些数据类型的相关操作

1.数据操作不同

Memcached仅支持简单的key-value结构的数据记录

Redis支持list、set、sorted set、hash等众多数据结构,还同时提供了持久化和复制等功能

2.内从管理机制不同(存储不同)

memcache 存储数据  内置的内存  不过memcache还用于缓存其他东西,例如:图片、视频等等

redis  存储数据 Redis当物理内存用完时,可以将一些很久没用到的value交换到磁盘

   持久化机制有两种:(RDB和AOF)

  • 1、定期将内存数据dump到磁盘;RDB持久化是指在指定的时间间隔内将内存中的数据集快照写入磁盘,实际操作过程是fork一个子进程,先将数据集写入临时文件,写入成功后,再替换之前的文件,用二进制压缩存储。
  • 2、aof(append only file)持久化机制--用记日志的方式记录每一条数据更新操作,一旦出现灾难事件,可以通过日志重放来恢复整个数据库  AOF持久化以日志的形式记录服务器所处理的每一个写、删除操作,查询操作不会记录,以文本的方式记录,可以打开文件看到详细的操作记录。

3.性能不同

Redis只使用单核,而Memcached可以使用多核,所以平均每一个核上Redis在存储小数据时比Memcached性能更高。而在100k以上的数据中,Memcached性能要高于Redis,虽然Redis也在存储大数据的性能上进行了优化,但是比起Memcached,还是稍有逊色。

4.集群管理不同

Memcached是全内存的数据缓冲系统,Redis虽然支持数据的持久化,但是全内存毕竟才是其高性能的本质。作为基于内存的存储系统来说,机器物理内存的大小就是系统能够容纳的最大数据量。如果需要处理的数据量超过了单台机器的物理内存大小,就需要构建分布式集群来扩展存储能力。

Memcached本身并不支持分布式,因此只能在客户端通过像一致性哈希这样的分布式算法来实现Memcached的分布式存储。相较于Memcached只能采用客户端实现分布式存储,Redis更偏向于在服务器端构建分布式存储。

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值