Stream类型
Stream 是一种数据结构,其作用类似于仅追加日志,但也实现了一些操作来克服典型的仅追加日志的一些限制。其中包括O(1)时间内的随机访问和复杂的消费策略,如消费者群体。您可以使用流实时记录和同时联合事件。Redis Stream用例示例包括:
- 事件来源(例如,跟踪用户动作、点击等)
- 传感器监测(例如,现场设备的读数)
- 通知(例如,将每个用户的通知记录存储在单独的流中)
Redis为每个Stream目生成一个唯一的ID。您可以使用这些ID稍后检索其关联条目,或者读取和处理流中的所有后续条目。请注意,由于这些ID与时间有关,此处显示的ID可能会有所不同,并且与您在自己的Redis实例中看到的ID不同。
Redis流支持多种微调策略(以防止流无限增长)和多个消费策略(请参阅XREAD、XREADGROUP和XRANGE)
下面是与PUB/SUB对比
项目 | Stream | Pub/Sub |
---|---|---|
持久化 | 支持 | 不支持 |
消费分组 | 支持 | 不支持 |
消费确认 | 支持 | 不支持 |
性能 | 与客户端数量无关,性能非常好 | 客户端多的时候,性能会出现明显的下降 |
数据隔离 | DB间数据互相独立 | 不同DB的数据能互相看到,不独立 |
模块API
支持新的REDIS 模块API: 定时器 、 集群 和字典API
LUA改进
LUA脚本可以复制到备库上。
LUA脚本现在可以超时
动态hz
之前的REDIS 的hz是固定值。 新版本为了平衡CPU和响应能力,支持hz动态变化.
新增ZPOP命令
SORTED SET的命令新增了如下命令:
命令 | 功能 |
---|---|
ZPOPMIN | 删除并返回在Sorted Set中得分最低的值。 默认是返回1个 |
ZPOPMAX | 删除并返回在Sorted Set中得分最高的值。 默认是返回1个 |
BZPOPMIN | 阻塞版的ZPOPMIN |
BZPOPMAX | 阻塞版的ZPOMAX |