Redis 7.0 新功能新特性总览

说明:本文根据Redis 7 RC2 的release note 整理并翻译

近日,Redis 开源社区发布了7.0的两个预览版。在这两个预览版中,有很多Redis 7.0中新增加的特性,新增加的命令或已有命令的新加参数,一些性能上的优化和提高,还有一些API的改变,并且修复了以前版本中的一些bug,下面让我们具体来看一下这些方面的内容。

Redis 7.0 包括了以下一些重要的变化:

1. 将AOF文件的存储方式改为在一个文件夹下存储多个文件。

2. 将持久化文件RDB的版本升级为10,与之前的RDB文件版本不再兼容。

3. 在读取老的RDB文件格式的时候将ziplist转换为listpack,这种转换发生于两种情况之下:从磁盘读取文件或者从一个主节点进行复制文件的时候。

4. 在redis.conf配置文件中,protected-mode 默认更改为yes,只有当你希望你的客户端在没有授权的情况下可以连接到Redis server的时候可以将protected-mode设置为no。

5. 在ACL中,pub/sub channel默认是被阻塞的。

6. 在从节点中,TTL的时间标识的是绝对时间,不再是相对时间,从而保证了过期数据被及时删除。

7. 不再支持 gopher协议。

8. 当在配置文件中设置replica-serve-stale-data=no, 当主节点不再提供服务时,PING命令得不到返回值。

Redis 7.0 新特性其中的几个例子:

1. RedisFunctions:一种新的方式用于Redis server端脚本,它不同于以前版本支持的Lua脚本, Redis Functions可支持持久化,可复制,并且在节点重启之后可以直接从server端读取。 我们会在后续的博客中详细介绍Redis Functions的使用。 如果现在大家就想知道更多详情,可以参考链接https://redis.io/topics/functions-intro

2. 集群支持显示主机名,而不仅仅显示ip地址。

3. 使用多个AOF文件降低了AOF重写期间的内存使用。

4. 在Lua脚本中支持了Function的标志。

5. 在AOF文件中增加了数据更新时间点的标识,使得用户可以恢复某一时间点的数据。

6. Lua脚本支持RESP3 版本的并且可以通过redis.REDIS_VERSION, redis.REDIS_VERSION_NUM得到Redis的版本。

7. 增加了对stream consumer组滞后的追踪和报告 。

8. 增加了API以便于可以在functions和Lua脚本中明确地查看ACL。

Redis 7.0 新增14个用户端命令和 15个已有命令的相关参数选项,其中包括:ZMPOP, BZMPOP,LMPOP, BLMPOP等新命令,对于EXPIRE和SET命令,新增了更多的命令参数选项。

例如,ZMPOP的格式如下: ZMPOP numkeys key [key ...] MIN|MAX [COUNT count],而BZMPOP是ZMPOP的阻塞版本。

下面是一个使用ZMPOP的例子:

    redis> ZMPOP 1 notsuchkey MIN
    (nil)
    redis> ZADD myzset 1 "one" 2 "two" 3 "three"
    (integer) 3
    redis> ZMPOP 1 myzset MIN
    1) "myzset"
    2) 1) 1) "one"
          2) "1"
    redis> ZRANGE myzset 0 -1 WITHSCORES
    1) "two"
    2) "2"
    3) "three"
    4) "3"
    redis> ZMPOP 1 myzset MAX 
    1) "myzset"
    2) 1) 1) "three"
          2) "3"
    redis> ZRANGE myzset 0 -1 WITHSCORES
    1) "two"
    2) "2"

Redis 7.0 新增10个管理和监控相关的命令及其相关参数选项,其中包括:COMMAND LIST,COMMAND INFO,CLUSTER DELSLOTSRANGE and CLUSTER ADDSLOTSRANGE等。

Redis 7.0 新增配置选项:

1. maxmemory-clients 可以限定所有客户端使用的内存总和的最大值。

2. cluster-port用户可以自定义集群的绑定端口。

3. 对于Config Set 和Get命令,支持在一次调用过程中传递多个配置参数。例如,现在我们可以在执行一次Config Set命令中更改多个参数: config set maxmemory 10000001 maxmemory-clients 50% port 26381。

4. 还有shutdown-timeout,latency-tracking,cluster-link-sendbuf-limit等相关配置选项。

Redis 7.0 在以下方面有了明显的性能提升:

1. 数据类型Hash,List, Zset的底层数据结构用listpack替换了ziplist

2. 列表(List)的数据类型可以存储超过4GB的单个元素

3. 降低了copy-on-write期间的内存使用

4. 在使用大量散列(Hash)或者有序集合(Zset)时节省了大量的内存

5. 在集群模式下,节省了大量的内存并且降低了系统整体的延迟时间

6. 在集群中,当一个主节点重启之后,从节点不再需要做完全同步,只需要做部分同步即可

7. 当Redis启动时,总是建立一个AOF文件用于持久化

8. 降低了长期没有响应客户(idle, stale client)的内存使用

9. 降低了在客户回复数据包中的对于写的系统调用次数,也同时降低了TCP packet的数目

Radis 7.0 还对模块(Module)的API进行了部分修改如下:

1. 新增了对RESP3类型的应答的API支持

2. 新增了在RM_Call对RESP3回复消息的解析的API支持

3. 增加了对ACL进行验证的支持

4. 还增加API:RM_CreateSubcommand,RM_KeyExists,RM_TrimStringAllocation, RM_SetCommandInfo等

当然,Redis 7.0 前两个预览版中不止以上提到的内容,还有更多的新特性和新功能我们会在后续的博客中继续为大家介绍。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,968评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,601评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,220评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,416评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,425评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,144评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,432评论 3 401
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,088评论 0 261
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,586评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,028评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,137评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,783评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,343评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,333评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,559评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,595评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,901评论 2 345

推荐阅读更多精彩内容