Redis 创始人宣布 Redis 6.0.0 稳定版正式 GA。

从首个 RC 版本到正式 GA 经历了四个月左右的时间,重要的新特性已在 RC1 中公布过:

  • 许多新的模块 API(modules API)
  • 更好的过期周期(expire cycle)
  • SSL
  • ACL
  • RESP3
  • 客户端缓存
  • 线程 I/O
  • 在副本上进行无盘复制
  • Redis-benchmark 集群支持与 Redis-cli 改进
  • Systemd 支持重写
  • Redis 集群代理与 Redis 6 一起发布(位于不同仓库)
  • Disque 模块与 Redis 6 一起发布(位于不同仓库)

正如 Redis 作者 antirez 所说,这是迄今最“企业”化的版本(SSL 与 ACL 等特性与企业极相关),也是最大的版本,同时也是参与人数最多的版本。GA 版本除了比 RC1 更稳定,还对部分功能进行了重新设计或是进一步的改进。

  1. 对客户端缓存某方面的功能进行了重新设计,主要是放弃了“缓存插槽”(caching slot)改为使用键名(key name)。另外还新增了“广播模式”(broadcasting mode),当使用广播模式时,服务器不需要记住每个客户端请求的 key。相反,客户端会订阅 key 的前缀:每当有匹配前缀的 key 被修改时,客户端就会收到通知。
  2. 用于主从复制的 RDB 文件如果不再使用会被删除
  3. 新的 ACL LOG 命令,可查看不遵循 ACL 权限的客户端(例如访问了无权限的命令和 key,以及验证失败),主要用于调试 ACL 问题。此外还有重新实现的 ACL GENPASS,它使用了基于 SHA256 的 HMAC 加密算法。
  4. 改进 PSYNC2 主从复制协议
  5. 改进 Redis 命令行的超时选项
  6. 提升 RDB 文件的加载速度(~20/30% 的提升)
  7. 新的 STRALGO 命令,实现了复杂的字符串算法。这是一个重要的算法,主要用于比较冠状病毒的 RNA(以及其他生物体的 DNA 和 RNA)

重要新特性介绍

RESP3

这是 Redis 6 中的新网络协议,但它是可选的,连接以 RESP2 模式开始,只有使用新的 HELLO 命令进行握手时,才进入新的协议模式。为什么要使用新协议?因为旧的语义不够。此外,RESP3 中还有其它功能,但是主要能力还是直接从 Redis 返回复杂的数据类型,而客户端对于数据类型的转换是透明的。

ACL

作者认为 Redis 需要 ACL,因为人们在更大的环境中需要更好地控制哪些客户端可以执行某些操作。同时,向 Redis 添加 ACL 的另一个要点是隔离,以保护数据免受应用程序错误的侵害。Redis 中还为 ACL 提供了 Redis 模块接口,因此开发者可以编写自定义身份验证方法。

SSL

这一特性值得一提的是,工作是完全在没有 antirez 参与的情况下完成的,这显示了 Redis 开发过程的变化。这可能需要简单结合一下背景:Redis 6 中 commit 次数最多的是 antirez,达到 685 次,而排在第二位的 zhaozhao.zz commit 数量是 81。

客户端缓存

antirez 此前已经详细介绍过该特性,我们也有相关分享:Redis 6 将采用全新协议 RESP3,以提供客户端缓存功能。当使用者需要进行快速存储或快速取操作时,就需要在客户端内存中存储一小部分信息,这可以降低程序获取数据时的延迟。

但是现在 antirez 认为这是 Redis 6 最不成熟的特性,他想在 Redis 6 GA 之前对此进行改进。可能会添加一个新模式,该新模式要求服务器不维护有关客户端的状态,或者根本不维护任何状态,并与更多消息进行交易。目前某些“缓存插槽”中过期的信息无法单一合并,antirez 表示一月份关于此特性还有更多工作要做。

Disque 成为模块

Disque 目的是构建分布式的内存中消息代理,此前它是一项实验功能,现在在 Redis 6 中成为模块,它可以支持集群消息总线 API,可以阻止和恢复客户端、支持计时器、模块私有数据的 AOF 和 RDB 控制功能。

集群代理

在 Redis 集群中,客户端会非常分散,现在为此引入了一个集群代理,可以为客户端抽象 Redis 群集,使其像正在与单个实例进行对话一样。同时在简单且客户端仅使用简单命令和功能时执行多路复用。

模块

Redis 6 的模块 API 达到了一个新高度,发展迅速,因为 Redis Labs 从零开始就使用模块系统来开发非常复杂的内容,使得 Redis 实际上变成一个框架,可以将系统作为模块来编写,而不必从头开始发明所有东西。

详情查看 http://www.antirez.com/news/132
下载地址 https://redis.io/download

Redis 6.0.0 GA相关推荐

  1. 【Redis】Redis4.0、5.0、6.0版本特性整理

    文章目录 Redis版本特性 Redis 4 模块系统 PSYNC 2.0 缓存驱逐策略优化 Lazy Free 交换数据库 混合持久化 内存命令 兼容 NAT 和 Docker Active Def ...

  2. redis Could not connect to Redis at 127.0.0.1:6379: Connection refused 问题解决

    redis Could not connect to Redis at 127.0.0.1:6379: Connection refused 问题解决 参考文章: (1)redis Could not ...

  3. Linux redis安装教程,Linux 下redis5.0.0安装教程详解

    Linux redis5.0.0安装,教程如下所示: 1.从官网下载,然后传到服务器,tar -zxvf解压 2.进入redis ? 3.安装:make, (1)若提示:: gcc: Command ...

  4. Nacos 1.0.0 GA,架构、功能与 API 设计全面重构

    Nacos 1.0.0 GA 版本发布了,此版本在架构.功能和 API 设计上进行了全方位的重构和升级. 此版本新特性包括: 注册实例支持 ephemeral 字段 Nacos 1.0.0 版本在 i ...

  5. 重磅消息:Redis 6.0.0 稳定版发布

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | https://www.sohu.com/a/ ...

  6. redis client 2.0.0 pipeline 的list的rpop bug

    描写叙述: redis client 2.0.0 pipeline 的list的rpop 存在严重bug,rpop list的时候,假设list已经为空的时候,rpop出来的Response依旧不为n ...

  7. Apache Hadoop 3.0.0 GA版正式发布,可以部署到线上

    今天凌晨 Apache Hadoop 3.0.0 GA 版本正式发布,这意味着我们就可以正式在线上使用 Hadoop 3.0.0 了!这个版本是 Apache Hadoop 3.0.0 的第一个稳定版 ...

  8. Redis启动报错:[20000] 07 Apr 17:55:34.562 # Creating Server TCP listening socket 127.0.0.1:6379: bind: N

    一开始我输入redis-server.exe报错如下: 然后搜索解决方案说是警告:没有指定配置文件,使用默认配置.要指定配置文件,使用命令 redis-server redis.windows.con ...

  9. 解决redis-cli连接时出现Could not connect to Redis at 127.0.0.1:6379: Connection refused

    解决redis-cli连接时Could not connect to Redis at 127.0.0.1:6379: Connection refused 原因:服务端未启动 [root@local ...

最新文章

  1. SD-WAN的四大错误观念
  2. 2005-3-28 + 探索ASP.NET Forum (1) 最初的印象
  3. UA MATH636 信息论7 高斯信道简介
  4. Logback配置文件这么写,TPS提高10倍!
  5. list 转set_MapStruct高级用法:List和String互转
  6. C# 合并多个不同格式文档为一个PDF
  7. GridViewObjectDataSource新特性小记 懒人篇(一) 分页上路
  8. Zemax操作38--POP(物理光学传播)的用法
  9. 熊迈摄像头SDK二次开发:登录、截屏、录像等功能
  10. CSS:border的属性
  11. python 负数变正数_numpy正数相乘变负数的解决办法
  12. 【win10操作系统基础】我的电脑 控制面板 win10桌面图标有个箭头如何不显示 去掉win10桌面图标箭头的方法
  13. 在一家地产公司搞销售
  14. php 实现繁体转简体代码效率对比
  15. skfuzzy.cmeans与sklearn.KMeans聚类效果对比以及使用方法
  16. C++程序闪退原因定位
  17. 【BLE MESH】PB-ADV入网详解
  18. ppt课堂教学流程图_教学流程图大全(教学PPT)
  19. 风丘科技为您提供车载以太网解决方案
  20. 使用ULIB+Altium Designer绘制元件原理图及封装

热门文章

  1. 路由包含#号导致的nginx_分布式实战:Nginx缓存之OpenResty部署
  2. 子类重载父类函数_Python面向对象之继承、重写与重载
  3. 彩色手绘元宵节插画风素材图片
  4. 年味十足的喜庆红色新年春节海报PSD模板
  5. 个人简介页面如何设计?优秀案例给你灵感
  6. 传统春节海报设计没有思路?
  7. 横幅新年促销海报PSD模板,拯救年底节日忙
  8. APP界面设计的视觉思维!
  9. vue 赋值不改变_【报Bug】超大BUG,Nvue页面引入组件以后,该页面data里的值不能再赋值改变...
  10. Intel 64 and IA-32 Architectures Instruction Format 指令格式