redis5.0版是Redis产品的重大版本发布,我们先看一下它的最新特点:
新的流数据类型(Stream data type) https://redis.io/topics/streams-intro
新的 Redis 模块 API:定时器、集群和字典 API(Timers, Cluster and Dictionary APIs)
RDB 增加 LFU 和 LRU 信息
集群管理器从 Ruby (redis-trib.rb) 移植到了redis-cli 中的 C 语言代码
新的有序集合(sorted set)命令:ZPOPMIN/MAX 和阻塞变体(blocking variants)
升级 Active defragmentation 至 v2 版本
增强 HyperLogLog 的实现
更好的内存统计报告
许多包含子命令的命令现在都有一个 HELP 子命令
客户端频繁连接和断开连接时,性能表现更好
许多错误修复和其他方面的改进
升级 Jemalloc 至 5.1 版本
引入 CLIENT UNBLOCK 和 CLIENT ID
新增 LOLWUT 命令 http://antirez.com/news/123
在不存在需要保持向后兼容性的地方,弃用 "slave" 术语
网络层中的差异优化
Lua 相关的改进
引入动态的 HZ(Dynamic HZ) 以平衡空闲 CPU 使用率和响应性
对 Redis 核心代码进行了重构并在许多方面进行了改进
Redis Stream
Redis stream本质上是个时序数据结构,具有如下特点:
每条记录是结构化、可扩展的对
每条记录在日志中有唯一标识,标识中包含了时间戳信息,单调递增
可以根据需要自动清理历史记录
保存在内存中,支持持久化
底层是修改版的radix tree,每个node存储了一个listpack 。listpack是一块连续的内存block,用于序列化msg entry及相关元信息,如msg ID,使用了多种编码,用于节省内存,是ziplist的升级版 。如果XADD每次添加的对中的field是一样的,那么field不会重复存储 。
![Redis 5.0新功能总结完整版](http://img.jiangsulong.com/220401/214515MI-0.jpg)
文章插图
内存友好,对于简单的十几~几十字节的msg,100MB内存可以存储数百万个 。listpack在内存和disk上的存储结构是一样的,所以stream数据在做RDB时效率非常高,0.3s,500w entries 。
Redis Stream使用演示
![Redis 5.0新功能总结完整版](http://img.jiangsulong.com/220401/2145154914-1.jpg)
文章插图
![Redis 5.0新功能总结完整版](http://img.jiangsulong.com/220401/2145151345-2.jpg)
文章插图
发布消息
![Redis 5.0新功能总结完整版](http://img.jiangsulong.com/220401/21451511E-3.jpg)
文章插图
【Redis 5.0新功能总结完整版】
读取消息
文章插图
阻塞读取
![Redis 5.0新功能总结完整版](http://p9.pstatp.com/large/pgc-image/b1defd98341342a4ae4243001bbf27df.jpg)
文章插图
发布新消息
![Redis 5.0新功能总结完整版](http://img.jiangsulong.com/220401/2145155621-6.jpg)
文章插图
消息返回
![Redis 5.0新功能总结完整版](http://img.jiangsulong.com/220401/2145155Y2-7.jpg)
文章插图
创建消费组
![Redis 5.0新功能总结完整版](http://img.jiangsulong.com/220401/214515G92-8.jpg)
文章插图
通过消费组读取消息
![Redis 5.0新功能总结完整版](http://img.jiangsulong.com/220401/2145152340-9.jpg)
文章插图
![Redis 5.0新功能总结完整版](http://img.jiangsulong.com/220401/214515O63-10.jpg)
文章插图
Redis Stream使用场景
可用作时通信等,大数据分析,异地数据备份等
![Redis 5.0新功能总结完整版](http://img.jiangsulong.com/220401/2145156240-11.jpg)
文章插图
客户端可以平滑扩展,提高处理能力
![Redis 5.0新功能总结完整版](http://img.jiangsulong.com/220401/2145153549-12.jpg)
文章插图
Zpop
Sorted Sets 增加了类似List的pop命令:
ZPOPMAX 命令用于移除并弹出有序集合中分值最大的 count 个元素
ZPOPMIN 命令用于移除并弹出有序集合中分值最小的 count 个元素
BZPOPMAX 和 BZPOPMIN 是上述两个命令的阻塞变种
![Redis 5.0新功能总结完整版](http://img.jiangsulong.com/220401/214515L01-13.jpg)
文章插图
CLIENT:
Client id返回当前连接的ID,每个ID符合如下约束:
永不重复,可以判断当前链接是否断链过
单调递增,可以判断不同链接的接入顺序
Client unblock:
当客户端因为执行具有阻塞功能的命令(如BRPOP、XREAD或者WAIT)被阻塞时,该命令可以通过其他连接解除客户端的阻塞
![Redis 5.0新功能总结完整版](http://img.jiangsulong.com/220401/2145151342-14.jpg)
文章插图
阿里云Redis 5.0优势:
新增的stream数据结构,丰富的应用场景和想象空间
推荐阅读
- AMD|下代RX 7000显卡不上PCIe 5.0电源 AMD认为不太稳定
- 值得一看的35个Redis经典知识点
- Redis 这么火,它都解决了哪些问题?
- Notepad++发布7.6.5.0新版本
- 支付宝又更新了,这些新功能还有谁不知道?
- 抖音开始精准“清粉”了 这些“安全”新功能多关注
- Redis热点key问题如何解决?
- 你应该知道的Redis事务
- Linux|国内顶级Linux发行版 深度操作系统20.5发布:更新内核、加入大量新功能
- 安卓连点器v5.0.1绿化版