APP下载

Redis史上最大更新版本6出炉!

消息来源:baojiabao.com 作者: 发布时间:2026-08-21

报价宝综合消息Redis史上最大更新版本6出炉!

Redis之父Salvatore Sanfilippo在自己的部落格,发布了Redis 6正式版释出的消息,并且解释了正式版与第一候选版之间的差异。Redis 6加入了许多新功能,包括RESP3、客户端快取、多执行绪I/O、SSL加密和ACL等,Salvatore Sanfilippo表示,虽然这是史上最大的版本,但也是最多人参与开发的一个版本,从第一候选版到最终版本,花费的时间比起过去的版本还要短。

Salvatore Sanfilippo认为Redis 6中最重要的更新,便是新的Redis协定RESP3,RESP3带来了更丰富的功能,使得界面函式库可以更好地映射主机语言中各类型的Redis回应,此外,新协定还为客户端函式库瘦身铺路,最终将可让用户更快速地采用指令和模组。

而且由于新协定RESP3的出现,Redis才得以支援客户端快取(Client Side Caching)功能。当客户端需要能够快速储存资料或是快取操作时,便需要在客户端储存一小部分资讯,以减少应用程序撷取资料的延迟,但要达到这个目的,系统必须要能够控制资料的有效性,RESP3让服务器能够对客户端发送资料失效讯息,让储存在客户端内存中过时的资料失效。这个功能在不少数据库都有提供,而Redis终于在第6版本更新协定,新增客户端快取功能。

Salvatore Sanfilippo提到,在发布第一候选版之后,他们重新设计了客户端快取,使用键值名称来实作,由于这个方法比原先的更好,因此连积压的功能广播模式也都完成了,用户在使用广播模式时,服务器不会储存每个客户端请求的键值,而是由客户端订阅键值前缀,当有与前缀相符的修改才会收到通知,也就是说服务器能够提供更多的讯息,但是服务器的内存消耗不会因此增加。

而且客户端也能够选择退出广播模式,将快取的内容准确的告诉服务器,以减少无效讯息的数量。新方法无论是在低内存或是低带宽需求,都能够运作得更好。

Redis 6支援了存取控制列表(Access Control List,ACL),赋予Redis具有使用者的概念,每个使用者拥有一组定义的功能,这些功能指示使用者能够执行的命令还有键值。目前Java、Node.js、Python和.NET中的Redis客户端都已经支援ACL,官方表示,由于Redis 6已经正式发布,他们会加速其他语言的支援。

正式版比第一候选版,还多了一个ACL LOG指令,该指令能呈现所有违反ACL的客户端,像是存取不应该存取的指令,或是尝试失败的身份验证。日志本身是存在内存中,每个外部代理都能够呼叫ACL LOG查看已发生的事件,对于ACL除错很有帮助。

除了ACL,Redis 6还支援了SSL加密流量的功能,在这版本之前,Redis的加密都必须在程序之外进行,也就是说需要使用其他应用程序来进行加密,官方提到,更糟糕的是,有许多执行个体干脆不加密,因此Redis 6提供SSL,可以说是在安全性上向前进了重要的一步。

另外,由于Redis一直是单执行绪基础架构,因此不少用户也提出要求,希望Redis能支援多执行绪,藉以进一步提升效能,因此在Redis 6中,虽然核心的部分仍保留单执行绪资料存取界面,但是在I/O的部分已经是多执行绪。透过使用不同的执行绪来处理读取和写入工作,让Redis程序可以将更多的运算资源放到操作、储存和检索资料中,进而提升整体效能。

2020-05-05 00:06:00

相关文章