Shaper-fox / hugoblogtalks

hugo博客评论
0 stars 0 forks source link

post/redis-interview-1/ #6

Open utterances-bot opened 3 years ago

utterances-bot commented 3 years ago

redis面试连环炮I - Wallis

Redis的面试连环炮I 面试题 Redis和Memcache有什么区别 Redis的线程模型是什么? Redis的数据类型及应用场景? 为什么单线程

https://bomir.top/post/redis-interview-1/

Bicomir commented 3 years ago

这个是整理于https://www.bilibili.com/video/BV1UJ411X7M1?p=39,老师基于的经验给出了一些自己思考, 学习记录而成;

感谢陌溪的 蘑菇博客, 也给学习路上带来了鼓舞, http://www.moguit.cn/#/info?blogOid=253 ,差不多基于这个博文, 然后局部加了自己查资料后的理解。

Bicomir commented 3 years ago

Redis如何过期?

Redis中一个key过期删除主要有两种方式:被动(passive way)和主动(active way)。

1) 被动删除 (消极方式) 当客户端尝试查询某个key,然后发现这个key的timeout已经过期了,则这个key会被删除,并返回空。

2)主动删除(积极方式) 对于那些从未被查询的key,即便它们已经过期,被动方式也无法清除。因此Redis会周期性地随机测试一些key,已过期的key将会被删掉。Redis每秒会进行10次操作,具体的流程:

a.随机测试 20 个带有timeout信息的key;删除其中已经过期的key; b.如果超过25%的key被删除,则重复执行步骤1; 这是一个简单的概率算法(trivial probabilistic algorithm),基于假设我们随机抽取的key代表了全部的key空间。