5分钟带你了解Redis 5.0新功能 内含重量级特性解读

5分钟带你了解Redis 5.0新功能 内含重量级特性解读

Redis 5.0最新特点

Redis是目前最流行的KV缓存数据库,它简单易用,安全稳定,在互联网行业有着非常广泛的应用。Redis 5.0版是Redis的重大版本发布,我们先看一下它的最新特点:

  1. 新的流数据类型(Stream data type)
  2. 新的 Redis 模块 API:定时器、集群和字典 API(Timers, Cluster and Dictionary APIs)
    3.RDB 增加 LFU 和 LRU 信息

4.集群管理器从 Ruby (redis-trib.rb) 移植到了redis-cli 中的 C 语言代码
5.新的有序集合(sorted set)命令:ZPOPMIN/MAX 和阻塞变体(blocking variants)
6.升级 Active defragmentation 至 v2 版本
7.增强 HyperLogLog 的实现
8.更好的内存统计报告
19.许多包含子命令的命令现在都有一个 HELP 子命令
10.客户端频繁连接和断开连接时,性能表现更好
11.许多错误修复和其他方面的改进
12.升级 Jemalloc 至 5.1 版本
13.引入 CLIENT UNBLOCK 和 CLIENT ID
14.新增 LOLWUT 命令
15在不存在需要保持向后兼容性的地方,弃用 "slave" 术语
16.网络层中的差异优化
17.Lua 相关的改进
18.引入动态的 HZ(Dynamic HZ) 以平衡空闲 CPU 使用率和响应性
19.对 Redis 核心代码进行了重构并在许多方面进行了改进

重量级特性——Stream

Redis Stream本质上是个时序数据结构,具有如下特点:

1.每条记录是结构化、可扩展的对
2.每条记录在日志中有唯一标识,标识中包含了时间戳信息,单调递增
3.可以根据需要自动清理历史记录
4.保存在内存中,支持持久化
底层是修改版的radix tree,每个node存储了一个listpack。listpack是一块连续的内存block,用于序列化msg entry及相关元信息,如msg ID,使用了多种编码,用于节省内存,是ziplist的升级版。如果XADD每次添加的对中的field是一样的,那么field不会重复存储。

5分钟带你了解Redis 5.0新功能 内含重量级特性解读

内存友好,对于简单的十几~几十字节的msg,100MB内存可以存储数百万个。listpack在内存和disk上的存储结构是一样的,所以stream数据在做RDB时效率非常高,0.3s,500w entries。

Redis Stream使用演示

5分钟带你了解Redis 5.0新功能 内含重量级特性解读

发布消息
5分钟带你了解Redis 5.0新功能 内含重量级特性解读

读取消息
5分钟带你了解Redis 5.0新功能 内含重量级特性解读

阻塞读取
5分钟带你了解Redis 5.0新功能 内含重量级特性解读

发布新消息
5分钟带你了解Redis 5.0新功能 内含重量级特性解读

消息返回

5分钟带你了解Redis 5.0新功能 内含重量级特性解读

创建消费组

5分钟带你了解Redis 5.0新功能 内含重量级特性解读

通过消费组读取消息

5分钟带你了解Redis 5.0新功能 内含重量级特性解读

Redis Stream使用场景

可用作时通信等,大数据分析,异地数据备份

5分钟带你了解Redis 5.0新功能 内含重量级特性解读

客户端可以平滑扩展,提高处理能力
5分钟带你了解Redis 5.0新功能 内含重量级特性解读

Zpop

  • Sorted Sets 增加了类似List的pop命令:
  • ZPOPMAX 命令用于移除并弹出有序集合中分值最大的 count 个元素
  • ZPOPMIN 命令用于移除并弹出有序集合中分值最小的 count 个元素
  • BZPOPMAX 和 BZPOPMIN 是上述两个命令的阻塞变种

5分钟带你了解Redis 5.0新功能 内含重量级特性解读

CLIENT:

Client id返回当前连接的ID,每个ID符合如下约束:

1.永不重复,可以判断当前链接是否断链过
2.单调递增,可以判断不同链接的接入顺序

Client unblock:

当客户端因为执行具有阻塞功能的命令(如BRPOP、XREAD或者WAIT)被阻塞时,该命令可以通过其他连接解除客户端的阻塞

5分钟带你了解Redis 5.0新功能 内含重量级特性解读

阿里云Redis 5.0优势

新增的stream数据结构,丰富的应用场景和想象空间
内核的改进和bugfix,使用更健壮
支持账号体系,根据账号用途赋予相应的权限,更加安全
审计日志,记录了读写操作、敏感操作(keys、flushall等)、慢日志、管理类命令,供用户查询
大key分析,基于快照的完整内存分析,更准确,直接输出内存消耗top排行的key
支持单机和集群版的平滑迁移

上一篇:ssh禁止root用户登录


下一篇:通过Safari与mobileconfig获取iOS设备UDID(设备唯一标识符)