开发者社区> 云栖号资讯小哥> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Redis 6.0 正式版终于发布了!除了多线程还有什么新功能?

简介: 云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! Redis 6.0.1 于 2020 年 5 月 2 日正式发布了,如 Redis 作者 antirez 所说,这是迄今为止最“企业”化的版本,也是有史以来改动最大的一个 Redis 版本,同时也是参与开发人数最多的一个版本。
+关注继续查看

云栖号资讯:【点击查看更多行业资讯
在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来!


1

Redis 6.0.1 于 2020 年 5 月 2 日正式发布了,如 Redis 作者 antirez 所说,这是迄今为止最“企业”化的版本,也是有史以来改动最大的一个 Redis 版本,同时也是参与开发人数最多的一个版本。

所以在使用此版本之前,建议各位开发者先进行深入的测试再考虑投产,毕竟生产坏境无小事。好了,回到本文的重点,接下来我们来重点看下 Redis 6.0.1 给我们带来了那些新功能。

所以在使用此版本之前,建议各位开发者先进行深入的测试再考虑投产,毕竟生产坏境无小事。好了,回到本文的重点,接下来我们来重点看下 Redis 6.0.1 给我们带来了那些新功能。

Redis 新功能介绍

Redis 6 的更新日志,主要包含以下五部分的内容:

1.Redis 6.0-RC1 版新功能介绍;
2.Redis 6.0-RC2 版新功能介绍;
3.Redis 6.0-RC3 版新功能介绍;
4.Redis 6.0-RC4 版新功能介绍;
5.Redis 6.0.0 GA 版新功能介绍。

除了以上这些版本的更新日志外,还有 6.0.1 正式版的更新日志,不过这个正式版的发布时间只比 Redis 6.0.0 GA 晚了两天,因此只修复了一些 bug,所以我们只需要看以上五个日志即可。

1.Redis 6.0-rc1 更新日志

官方更新日志如下:

_1

此版本新增的内容最大,如下列表所示:

  • 众多新模块(modules)API
  • 更好的过期循环(expire cycle)
  • SSL
  • ACLs 权限控制
  • RESP3 协议
  • 客户端缓存(Client side caching)
  • 多线程 IO(Threaded I/O)
  • 无盘复制副本(Diskless replication on replicas)
  • Redis-benchmark 的集群支持和 redis-cli 优化
  • 重写 Systemd 支持(Systemd support rewrite)
  • Redis 集群代理与 Redis 6 一同发布(但在不同的 repo)
  • Disque 模块与 Redis 6 一同发布

2.Redis 6.0-rc2 更新日志

3

Redis 6 RC2 带来了许多修复和新功能,尤其是客户端的缓存功能,此版本的重大更改如下列表。

  • ACL LOG:记录拒绝的命令,密钥访问和身份验证。
  • 重新设计了客户端缓存。现在,我们使用密钥而不是缓存插槽。
  • 客户端缓存:已实现广播模式。
  • 客户端缓存:已实现 OPTIN/OPTOUT 模式。
  • 删除用于在非持久性实例中进行复制的 RDB 文件(可选)。
  • 修复程序(仅选定的修复程序,请参阅所有修复程序的提交):
  • 在边缘情况下对流的不同修复。
  • 修正由于 RESP3 更改而导致重复的 CLIENT SETNAME 答复。
  • 修正因新的有效到期除以零而导致的崩溃。
  • 避免将哨兵更改提升为自己的副本。
  • 修复了 KEYS 命令中以 * 开头,后跟 x00 的错误。
  • 线程 I/O:现在也使用主线程来执行 I/O。
  • 对模块API进行了许多修复,而在下一个RC中还会有更多修复。
  • 如果字符串中间包含 0,则 ld2string 应该失败。
  • 使 Redis 测试更可靠。

3.Redis 6.0-rc3 更新日志

3

  • 这个版本主要是修复了一些 bug,如下列表所示:
  • 修复了由于重构 SSL 而导致的连接代码崩溃。
  • 用于阻止命令的精确超时。现在超时已达到 HZ 分辨率,无论连接的 clinet 数量如何。新超时存储在基数树中并按到期时间排序。
  • 修复了由于 CONFIG maxclients 而调整事件循环大小时发生的罕见崩溃。
  • 修正部分重新同步成功后的 systemd 准备情况。
  • Redis-cli 询问密码模式将在启动时提示(以提高安全性)。
  • 键空间通知已添加到 MIGRATE/RESTORE。
  • 修复了线程 I/O 错误。
  • 在 Sentinel 中实现新的 ACL 样式 AUTH。
  • 使 'requirepass' 与 Redis<=5 更向后兼容。
  • ACL:如果默认用户关闭,则将其视为禁用状态,而不管其是否为“ nopass”。
  • 修复了在 Redis 群集中升级实例时可能出现的不一致问题
  • READONLY 错误后中止事务。
  • 对模块 API 的许多不同修复。
  • 添加了 BITFIELD_RO 以在只读副本上调用该命令。
  • PSYNC2:有意义的偏移量实现。允许断开连接的主机仍在向副本发送 PING,以便能够成功 PSYNC 以增量方式传递给新的从站,从而丢弃了仅由 PING 组成的复制积压。
  • 修正 Lua 脚本处于繁忙状态时流水线的 MULTI/EXEC。
  • 重新修复模块中的传播 API,在其他更改后再次中断。

4.Redis 6.0-rc4 更新日志

4

此版本主要新增的内容如下:

  • 提高了大量客户端连接时使用 INFO 命令的查询速度。
  • 在所有阻止命令上都大大加快了速度:现在可以阻止在同一键上是 O(1)而不是 O(N)。
  • 陈旧的副本现在允许 MULTI/EXEC。
  • 新命令:LCS(最长公共子序列)。
  • 添加新配置以使 DEL 像 UNLINK。
  • RDB 加载加速。
  • 修复了许多错误。

5.Redis 6.0.0 GA 更新日志

5

此日志更新的主要内容如下:

  • XCLAIM AOF/replicas 传播已修复。
  • 客户端缓存:新的 NOLOOP 选项以避免收到有关自己执行的更改。
  • ACL GENPASS 现在使用 HMAC-SHA256,并具有一个可选的“位”参数。这意味着您可以将其用作通用的“安全随机字符串”原始!
  • 群集“SLOTS”子命令的内存优化。
  • LCS 命令现在是 STRALGO 的子命令。
  • 副本的有意义的偏移量。更成功的部分重新同步。
  • 优化延迟回复的内存使用。
  • 更快的 CRC64 法可更快地加载 RDB。
  • XINFO STREAM FULL,一个新的子命令,用于获取整个流状态。
  • CLIENT KILL USER <用户名>。
  • MIGRATE AUTH2 选项,用于 ACL 样式身份验证支持。
  • 修正了一些其他错误。

综合以上所有版本的更新日志我们发现,这次 Redis 6.0 带来的主要功能是:

  • 提供了众多的新模块(modules)API
  • 提供了客户端缓存功能
  • 多线程 I/O 能力
  • 提升了 RDB 日志的加载速度
  • 修改了若干 bug 和一些优化

其中多线程 I/O 能力是我们最关注的功能了,有人用它和单线程的版本做个一个性能对比,如下图所示:

01

02

(注:图片来源于 iTushou.com)

从以上结果可以看到 GET/SET 命令在多线程版本中的性能相比单线程已经翻倍了。

总体来说,此次 Redis 6.0 带给我们的功能还是很大并且很实用的,只是版本改动太大,我们需要等待时间的验证和大量的测试之后才建议上线至生产环境。

【云栖号在线课堂】每天都有产品技术专家分享!
课程地址:https://yqh.aliyun.com/live

立即加入社群,与专家面对面,及时了解课程最新动态!
【云栖号在线课堂 社群】https://c.tb.cn/F3.Z8gvnK

原文发布时间:2020-05-03
本文作者:Java中文社群
本文来自:“掘金”,了解相关信息可以关注“掘金”

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【直播回顾】阿里技术专家梁盼:Redis多线程性能优化
众所周知redis是单进程单线程模型。单进程单线程只能跑满一个CPU核,小包场景下,QPS只有8~10万级别。由于网络IO和命令解析在redis命令处理中占用了较大部分的资源,因此将网络IO和命令解析,命令处理做功能拆分:IO和命令解析在IO线程中处理,命令处理在Worker线程中进行,从而达到提高性能的目的,经测试阿里云Redis多线程优化版性能上相比原生redis有 300%的性能提升,而功能上完全兼容原生redis。
9617 0
Redis&MongoDB 社区双周刊第1期:Redis多线程性能优化
云栖社区已有1000位Redis&MongoDB开发者,发布了5000+Redis文章,发布了2000+MongoDB文章,沉淀了800+的Redis精品问答,沉淀了1000+的MongoDB精品问答。
1912 0
【直播预告】阿里技术专家梁盼:Redis多线程性能优化
众所周知redis是单进程单线程模型。单进程单线程只能跑满一个CPU核,小包场景下,QPS只有8~10万级别。由于网络IO和命令解析在redis命令处理中占用了较大部分的资源,因此将网络IO和命令解析,命令处理做功能拆分:IO和命令解析在IO线程中处理,命令处理在Worker线程中进行,从而达到提高性能的目的,经测试阿里云Redis多线程优化版性能上相比原生redis有 300%的性能提升,而功能上完全兼容原生redis。
1727 0
linux下redis的安装和配置
linux下redis的安装和配置
0 0
Docker安装Redis并使用Another Redis Desktop Manager连接
Docker安装Redis并使用Another Redis Desktop Manager连接
0 0
一幅长文细学Redis(一)——NoSQL数据库简介以及Redis安装
Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。在本文中,我们会讲解NoSQL到底是什么,以及Redis的基本概念与安装方式。
0 0
Docker安装redis(保姆级教程&图文并茂)
Docker安装redis(保姆级教程&图文并茂)
0 0
+关注
云栖号资讯小哥
云栖号小编在此 ^o^
文章
问答
文章排行榜
最热
最新
相关电子书
更多
专有云V3.3新版发布
立即下载
Redis的开发规范和常见问题
立即下载
Redis 的高并发实战:抢购系统
立即下载