新版Redis6特性之多线程
-
支持多线程
-
redis6多线程只是用来处理网络数据的读写和协议解析上,底层数据操作还是单线程
-
执行命令仍然是单线程,之所以这么设计是不想因为多线程而变得复杂,需要去控制key、lua、事务、LPUSH/LPOP等等的并发问题
-
默认不开启
io-threads-do-reads yes # 开启多线程解析 io-threads # 线程数
-
官方建议(线程数小于机器核数)
- 4核的机器建议设置为2或3个线程
- 8核的机器建议设置为4或6个线程
-
-
开启多线程后,是否会存在线程并发安全问题?
- 不会有安全问题,Redis的多线程部分只是用来处理网络数据的读写和协议解析,执行命令仍然是单线程顺序执行