前言
Redis 7 是近年来最大的更新。本文解析核心新特性。
一、多线程 IO
Redis 6 引入多线程 IO,7 进一步优化。开启方式:
io-threads 4
io-threads-do-reads yes
QPS 可提升 1.5-2 倍,但要注意命令本身仍是单线程执行。
二、Functions(函数)
替代 EVAL 的更优方案。函数可热更新、有命名空间:
FUNCTION LOAD "#!lua name=mylib
redis.register_function('myset', function(keys, args)
redis.call('SET', keys[1], args[1])
return 1
end)"
三、ACL 增强
支持细粒度权限:可选择 keys、命令子命令权限。
ACL SETUSER appuser on >password ~app:* +get +set -flushall
四、Sharded Pub/Sub
分片集群下的 Pub/Sub,消息只在同一 slot 内广播,避免全集群广播。
五、数据类型增强
1. List 支持 LMPOP 多元素弹出
2. Set 支持 SMISMEMBER 批量判断
3. Stream 消费组性能优化
六、性能对比
对比 Redis 6.2,Redis 7 在 GET/SET 基准测试中性能提升约 30%,内存占用降低 20%。
总结
Redis 7 是必升级版本。多线程 IO、Functions、ACL 让 Redis 更接近通用数据平台。