Redis 6.0 新特性
2020年5月2号 形成了稳定版本发布
简单介绍一下Redis6.0 有哪些重要新特性。
1.多线程IO
Redis 6引入多线程IO,但多线程部分只是用来处理网络数据的读写和协议解析,执行命令仍然是单线程。之所以这么设计是不想因为多线程而变得复杂,需要去控制 key、lua、事务,LPUSH/LPOP 等等的并发问题。
2.重新设计了客户端缓存功能
实现了Client-side-caching(客户端缓存)功能。放弃了caching slot,而只使用key names。
Redis server-assisted client side caching
3.RESP3协议
RESP(Redis Serialization Protocol)是 Redis 服务端与客户端之间通信的协议。Redis 5 使用的是 RESP2,而 Redis 6 开始在兼容 RESP2 的基础上,开始支持 RESP3。
推出RESP3的目的:一是因为希望能为客户端提供更多的语义化响应,以开发使用旧协议难以实现的功能;另一个原因是实现 Client-side-caching(客户端缓存)功能。
4.支持SSL
连接支持SSL,更加安全。
5.ACL权限控制
-
支持对客户端的权限控制,实现对不同的key授予不同的操作权限。
-
有一个新的ACL日志命令,允许查看所有违反ACL的客户机、访问不应该访问的命令、访问不应该访问的密钥,或者验证尝试失败。这对于调试ACL问题非常有用。
6.提升了RDB日志加载速度
根据文件的实际组成(较大或较小的值),可以预期20/30%的改进。当有很多客户机连接时,信息也更快了,这是一个老问题,现在终于解决了。
7.提供了众多的新模块(modules)API
8.发布官方的Redis集群代理模块 Redis Cluster proxy
在 Redis 集群中,客户端会非常分散,现在为此引入了一个集群代理,可以为客户端抽象 Redis 群集,使其像正在与单个实例进行对话一样。同时在简单且客户端仅使用简单命令和功能时执行多路复用。
安装 6.0
centos 7 直接安装redis6。报错了,需要升级GCC 版本
redis 6.0 需要GCC 8.5 以上
$ wget http://download.redis.io/releases/redis-6.0.6.tar.gz
$ tar xzf redis-6.0.6.tar.gz
#升级到 5.3及以上版本
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash
#注意:scl命令启用只是临时的,退出xshell或者重启就会恢复到原来的gcc版本。
#如果要长期生效的话,执行如下:
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile
$ cd redis-6.0.6
$ make
$ make install PREFIX=/usr/local/redis6