Redis5 新增了很多特性,我这里做下罗列

一、新增 Stream(流)数据类型

这样 Redis 就有了6大数据类型,另外五种是String(字符串)Hash(哈希)List(列表)Set(集合)ZSet(sorted set有序集合)。它弥补了其它5种数据类型不能实现的功能,比如 List 数据类型只能先进先出,或者后进先出,不能从中间去数据,但是 Stream 可以实现。

Stream 详细介绍:Redis Streams

1)创建 Stream

命令:XADD

用法:XADD key ID field string (id可以自定义)

127.0.0.1:6379> XADD key1 * month month_value  # *代表默认id
"1563893367304-0"                              # 返回值说明:前面是UNIX毫秒时间戳 后面是序列号  
 
127.0.0.1:6379> XADD key2 0-1 car car_value    # 自定义ID为 0-1
"0-1"

2)查看Stream长度

命令:XLEN 返回stream中元素的个数

用法:XLEN key

127.0.0.1:6379> XLEN key1
(integer) 1

二、新的 Redis 模块 api : Times and Cluster api,是一个抽象的集群消息总线,用于方便开发分布式系统。

三、RDB(redis database)现在用于存储 LFU(最近最少使用淘汰算法) 和 LRU(最近不经常使用淘汰算法)元数据信息。

四、集群管理器从 Ruby 移植到 C 代码

集群删除从节点

redis-cli --clusterdel-node 192.168.0.100:5008 ID               # 分片操作

redis-cli --cluster reshard 192.168.0.100:5007                  # 动态添加节点

redis-cli --cluster add-node 添加节点host:port 被添加的host:port   # 添加从节点

cluster replicate 做谁的节点id

五、新的 sorted set 命令:ZPOP / MIN / MAX 和阻塞变种

ZPOPMAX key [count]  # 删除返回集合中分值最高的元素

ZPOPMIN              # 删除返回集合中分值最低的元素

ZPOPMIN key [count]

BZPOPMAX

BZPOPMIN

应用场景举例:

  1. 成绩排名,第一名和最后一名
  2. 网站热搜,当下最火搜索

六、主动碎片整理V2

配置项:

activedefrag yes
 
active-defrag-ignore-bytes 100mb # 内存浪费超过100M时候整理
 
active-defrag-threshold-lower 10
  1. 在运行期进行自动的内存碎片整理,释放内存空件
  2. 通过内存报告了解整个系统的内存使用情况

七、增强 HyperLogLog 实现