IT外包网管服务,Redis  6.0新功能-多线程连续13个问题!

发布者:上海IT外包来源:http://www.lanmon.net点击数:1205

蓝盟IT小贴士,来喽!
Redis是在处理来自客户端的请求时,由检索(socketread  )、分析、执行、内容恢复(socketwrite  )等一系列主线程处理的所谓的“单线程”。 但是,严格来说,Redis4.0和更高版本不是单线程,而是主线程和后台线程处理较慢的操作,如清理脏数据、释放不必要的连接和删除较大的key。

正式而言,使用Redis时,CPU几乎不会成为瓶颈,Redis主要限于内存和网络。 例如,在典型的Linux系统中,Redis可以通过使用pipelining来一秒处理100万条请求,因此在应用程序主要使用O(N  )或O(log(N  ) )命令的情况下,不太消耗CPU。


使用单线程,维护性很高。 多线程模型在某些方面是优越的,但它引入了程序执行次序的不确定性,导致了一系列的读写问题,增加了系统复杂性,同时可能由于线程切换、解锁和死锁而导致性能损失。 Redis通过AE事件模型和IO复用等技术的处理性能非常高,所以不需要使用多线程。 单线程机制大大降低了Redis内部实现的复杂性,Hash的惰性Rehash、Lpush等“线程不安全”指令都可以不锁定地执行。

但是,随着业务日益复杂,一些公司需要更大的QPS,因为他们拥有数亿笔交易量。 典型的解决方案是在分布式体系结构中对数据进行分区并采用多台服务器,但是存在很大的缺点,例如要管理的Redis服务器过多,维护成本高等。应用于单个Redis服务器的命令包括: 某些数据分区不适用于数据分区,例如数据分区无法解决热点读/写问题的偏差、重新分配和缩放变得更加复杂等。

文/IT外包专家 蓝盟IT服务 编辑

IT外包
>
400-635-8089
立即
咨询
电话咨询
服务热线
400-635-8089
微信咨询
微信咨询
微信咨询
公众号
公众号
公众号
返回顶部