简述Redis与Memcached的区别

4 篇文章 0 订阅

Redis与Memcached都是比较优秀的缓存中间件.对于这两者的选择,我们可以根据情景的不同做出不同的选择.本文简述一下这两者的部分区别.如下

数据类型方面

Redis支持五种数据类型.(String,List,Hash,Set,SortedSet)
而MemCached仅支持一种数据类型.(String)

持久化方面

Redis可以进行持久化操作

Redis将数据存储于内存中,但也会定时的将数据存放到硬盘中.
我了解到的存储到硬盘的方式有两种:
RDB和AOF
RDB:就是将数据创建一个快照,存储到硬盘中,通常是隔一段时间执行一次,如果频繁执行会影响Redis的速度.
AOF:就是每隔一段时间将Redis使用的命令存放的硬盘中.如果不考虑性能可以每执行一次命令存入一次.
在项目中通常使用RDB和AOF共存的方式保证数据的完整性和恢复数据的速度.

Memcached只存储于内存中

内存管理方面

Redis采用内存申请的方式 当数据超量时,会引用swap 刷掉冷数据到磁盘
Memcached采用预分配池管理内存.

集群方面

Redis原生支持集群
Memcached需要借助客户端完成集群.

借助客户端就需要用到io操作,拖慢运行速度.

底层环境方面

Redis有自己的VM,无需调用系统函数.
Memcached需要调用系统函数.有些情况下调用系统函数会影响速度.

性能方面

Memcached使用多线程,所以吞吐量较高,对于高于100kb的数据性能较Redis好,但是可能会出现锁冲突
Redis使用单线程,可以不用考虑锁对数据插入修改的影响,对于小于100kb的数据来说性能较Memcached好,但是无法利用多核提高吞吐量,只能使用多开的方式.

value存储大小

Memcached的value存储量最大为1M
而Redis的value最大存储量为1G

个人结论:

在没有复杂的数据操作的情况下,只有k,v 使用Memcached更快.
Memcached更适合做内存,Redis更适合做数据存储

如果您发现本文中含有错误内容,欢迎指正,如果有补充,欢迎在评论区提出.期待您的不吝赐教!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值