1
0
mirror of https://github.com/Snailclimb/JavaGuide synced 2025-06-16 18:10:13 +08:00

Merge pull request #1882 from NoctisZhao/patch-2

Update redis-questions-01.md
This commit is contained in:
Guide 2022-12-06 11:01:35 +08:00 committed by GitHub
commit 7673b7d2a5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -364,17 +364,21 @@ Redis 通过 **IO 多路复用程序** 来监听来自客户端的大量连接
虽然Redis6.0 引入了多线程,但是 Redis 的多线程只是在网络数据的读写这类耗时操作上使用了,执行命令仍然是单线程顺序执行。因此,你也不需要担心线程安全问题。 虽然Redis6.0 引入了多线程,但是 Redis 的多线程只是在网络数据的读写这类耗时操作上使用了,执行命令仍然是单线程顺序执行。因此,你也不需要担心线程安全问题。
Redis6.0 的多线程默认是禁用的,只使用主线程。如需开启需要修改 redis 配置文件 `redis.conf` Redis6.0 的多线程默认是禁用的只使用主线程。如需开启需要设置IO线程数 > 1需要修改 redis 配置文件 `redis.conf`
```bash
io-threads 4 #设置1的话只会开启主线程官网建议4核的机器建议设置为2或3个线程8核的建议设置为6个线程
```
另外:
- io-threads的个数一旦设置不能通过config动态设置
- 当设置ssl后io-threads将不工作
开启多线程后默认只会使用多线程进行IO写入writes即发送数据给客户端如果需要开启多线程IO读取reads同样需要修改 redis 配置文件 `redis.conf` :
```bash ```bash
io-threads-do-reads yes io-threads-do-reads yes
``` ```
但是官网描述开启多线程读并不能有太大提升,因此一般情况下并不建议开启
开启多线程后,还需要设置线程数,否则是不生效的。同样需要修改 redis 配置文件 `redis.conf` :
```bash
io-threads 4 #官网建议4核的机器建议设置为2或3个线程8核的建议设置为6个线程
```
相关阅读: 相关阅读: