Redis 最大的问题是后台主工作线程是一个单线程模型。用户所有的来自不同 client的请求,实际上在每个 event到来后,交由后端单线程串行执 行。等每个 event处理完成后,才处理下一个。这种单线程 run-tocompletion 的好处就是没有 dispatcher,没有后端的 multi-worker,可以做到全无锁,设计 更简单。但是如果中间有慢查询,诸如单机版的 keys、lrange、 hgetall 等拖慢了 一次查询,那么后面的请求就会因为串行排队而被拖慢,所以,在运维 Redis 的时候,如果您是用的 Sentinel 判活机制,就可能会有问题,从而导致整个 Redis 服务挂起
资源来源于《阿里云数据库运维实战问题改》
https://developer.aliyun.com/topic/download?spm=a2c6h.20345107.J_6399686890.1.2e1e17dbzKUX5r&id=8198
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。