redis开启多线程

2023-08-10

Redis 6.0中,非常受关注的第一个新特性就是多线程


在Redis 6.0中,多线程默认是禁用的,只使用主线程。如果需要使用多线程功能,需要在 redis.conf文件中进行配置(重启服务)。

1. 开启redis多线程
  修改redis.conf配置文件

io-threads-do-reads yes
io-threads 6 #开启多线程后,需要设置线程数,否则是不生效的

  关于线程数的设置,官方有一个建议:4核的机器建议设置为2或3个线程,8核的建议设置为6个线程,线程数一定要小于机器核数。

  还需要注意的是,线程数并不是越大越好,官方认为超过了8个基本就没什么意义了。

下图为默认配置:

2. redis支持多线程主要就是两个原因:

  ① 可以充分利用服务器 CPU 资源,目前主线程只能利用一个核

  ② 多线程任务可以分摊 Redis 同步 IO 读写负荷

3. redis6.0采用多线程后,性能的提升效果如何?

  Redis 作者 antirez 在 RedisConf 2019分享时曾提到:Redis 6 引入的多线程 IO 特性对性能提升至少是一倍以上。

  国内也有大牛曾使用unstable版本在阿里云esc进行过测试,GET/SET 命令在4线程 IO时性能相比单线程是几乎是翻倍了。

  如果开启多线程,至少要4核的机器,且Redis实例已经占用相当大的CPU耗时的时候才建议采用,否则使用多线程没有意义。


注:在单机模式下,可以开启多线程,但是在其他模式,最好不开启

redis开启多线程的相关教程结束。