mc建筑网站,让wordpress首页不显示正文,网站流量统计表,168推广文章目录 Redis6.0 之后为何引入了多线程#xff1f; 虽然说 Redis 是单线程模型#xff0c;但是#xff0c; 实际上#xff0c;Redis 在 4.0 之后的版本中就已经加入了对多线程的支持。 不过#xff0c;Redis 4.0 增加的多线程主要是针对一些大键值对的删除操作的命令 虽然说 Redis 是单线程模型但是 实际上Redis 在 4.0 之后的版本中就已经加入了对多线程的支持。 不过Redis 4.0 增加的多线程主要是针对一些大键值对的删除操作的命令使用这些命令就会使用主处理之外的其他线程来“异步处理”。
大体上来说Redis 6.0 之前主要还是单线程处理。
那Redis6.0 之前 为什么不使用多线程
我觉得主要原因有下面 3 个
单线程编程容易并且更容易维护Redis 的性能瓶颈不再 CPU 主要在内存和网络多线程就会存在死锁、线程上下文切换等问题甚至会影响性能。
Redis6.0 之后为何引入了多线程
Redis6.0 引入多线程主要是为了提高网络 IO 读写性能因为这个算是 Redis 中的一个性能瓶颈Redis 的瓶颈主要受限于内存和网络。
虽然Redis6.0 引入了多线程但是 Redis 的多线程只是在网络数据的读写这类耗时操作上使用了 执行命令仍然是单线程顺序执行。因此你也不需要担心线程安全问题。
Redis6.0 的多线程默认是禁用的只使用主线程。如需开启需要修改 redis 配置文件 redis.conf
io-threads-do-reads yes开启多线程后还需要设置线程数否则是不生效的。同样需要修改 redis 配置文件 redis.conf :
io-threads 4 #官网建议4核的机器建议设置为2或3个线程8核的建议设置为6个线程