Redis面试常用会问到的一些问题 (一)

本文探讨了Redis和Memcached之间的关键区别,包括数据操作能力、内存使用效率、性能对比及集群模式。Redis支持服务器端复杂数据操作,内存利用率高,单线程模型下仍能保持高效率,且原生支持集群模式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一).redis和memcached有什么区别?redis的线程模型是什么?为什么单线程的redis比多线程的memcached效率要高得多(为什么redis是单线程的但是还可以支撑高并发)?

首先咱们说区别

这个事儿吧,你可以比较出N多个区别来,但是我还是采取redis作者给出的几个比较吧

(1).Redis支持服务器端的数据操作:Redis相比Memcached 来说,拥有更多的数据结果和并支持更多的数据库操作,通常在Memcached里,你需要将数据拿到客户端进行类似的修改再set 回去。这大大的增加了网络IO的次数和数据体积。 在Redis众,这些复杂的操作通常和一半的GET/Set一样高效。如果需要缓存能够支持更多的复杂的结构和操作,那么Redis会是个不错的选择。

(2).内存使用效率对比:使用简单的key-value存储的话,Memcached内存利用率更高,而如果Redis采用hash结构来做key-value存储,由于其组合式的压缩,内存利用率会高于Memcached。

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

(4).集群模式:memcached没有原生的集群模式,需要依靠客户端来实现往集群中分片写入数据;但是redis目前是原生支持cluster模式的,redis官方就是支持redis cluster集群模式的,比memcached来说要更好

Redis的线程模型

Redis的线程图

为啥Redis单线程模型也能效率那么高

1)纯内存操作
2)核心是基于非阻塞的IO多路复用机制
3)单线程反而避免了多线程的频繁上下文切换问题(百度)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

否老二

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值