Redis6介绍与新特性
什么是Redis?
Redis是一个开源、使用C语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、支持持久化的 Key Value 键值对存储数据库。
Redis的使用场景有哪些?
- 高并发场景替代MySQL
- 缓存热点数据
- 消息的发布/订阅(部分场景可取代消息队列)
- 高频读、低频写场景
- 分布式架构下分布式锁
- 计算交并差
- 公众号展示的有多少共同关注好友
Redis6新特性
-
多线程IO:
Redis6 提供了多线程的支持,严格来说6以前也是多线程,只是执行用户指令时采取单线程,还有一些线程用来执行后台任务,如unlink删除大key,持久化等。
但是在6以后提供了多线程的读写IO,虽然最终执行用户指令时依然是单线程的,但这样没有多线程数据的竞争,效率依然是简单高效的。
-
客户端缓存:
允许在应用端开辟客户端缓存空间,通过redis的监听机制,可以与远程redis保持同步,减少网络通信次数。
-
ACL权限控制:
基于此功能,可以控制某些用户允许执行哪些命令、访问哪些数据
-
RESP3协议
RESP(Redis Serialization Protocol)是 Redis 服务端与客户端之间通信的协议。Redis 5 使用的是 RESP2,而 Redis 6 开始在兼容 RESP2 的基础上,开始支持 RESP3。 推出RESP3的目的:
- 希望能为客户端提供更多的语义化响应,以开发使用旧协议难以实现的功能
- 实现 Client-side-caching(客户端缓存)功能
-
提升RDB日志加载速度
-
Redis集群代理模块
引入集群代理(redis-cluster-proxy),对请求进行分片路由,简化对Redis集群处理难度。