Redis 5.0 正式发布!一网打尽所有新特性!

Posted liuxinquan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis 5.0 正式发布!一网打尽所有新特性!相关的知识,希望对你有一定的参考价值。

作为一统缓存江山的redis,正式发布了5.0稳定版(stable),激不激动,开不开森?Github链接:https://github.com/antirez/redis/releases/tag/5.0.0 ,让我们一起看看它带来了哪些振奋人心的新特性:

 
技术分享图片

官方列举特性如下:

 
技术分享图片

Redis开源社区版新特性

下面我们对一些重要特性进行更深入的了解。

Streams

全新的数据类型:Streams。官方把这个当做是最重要的改进(The most important user facing improvement is without doubts the introduction

of the new general purpose data type after years: the streams.

)。而且官方提到在发版本的几个小时前还在修复streams的问题,所以官方也不敢保证release版本是否有一些比较严重的BUG(T T),官方还是建议大家在生产环境不要使用streams,这样可能会有更好的体验,扎心了(People not using the streams can have probably a better production-ready

experience with Redis 5)。

笔者接下来还会单独撰文剖析Streams,敬请关注。

cluster manager with c

redis终于还是抛弃了ruby,维护过redis3.x和redis4.x的都知道,主要依赖redis-trib.rb脚本,redis5.0彻底抛弃了它,将集群管理功能全部集成到完全用C写的redis-cli中。可以通过命令redis-cli --cluster help查看帮助信息。

LOLWUT

redis5.0新增的一个命令,官方对它的描述是:a piece of art inside a database command,翻译过来可以数据库命令中的一件艺术品(老外真幽默)。

这个方法源码注释如下:

This file implements the LOLWUT command. The command should do something

fun and interesting, and should be replaced by a new implementation at each new version of Redis。源码链接:https://github.com/antirez/redis/blob/5.0.0/src/lolwut5.c,有兴趣的同学可以看看redis作者在5.0版本中实现了些什么好玩的东西。

有兴趣的同学还可以延伸阅读:http://antirez.com/news/123

Lua改进

lua脚本能更好的传播到replicas/AOF。replicas也就是以前的slave,大家都知道redis的slave事件前段时间闹的沸沸扬扬,现在redis官方都改称replicas了,并且申明除非为了API向后兼容,否则不再使用slave这个词(We no longer use the "slave" word if not for API backward compatibility.)。

lua脚本现在还能支持超时,并且可以在replica中进入BUSY状态。

动态HZ

以前redis版本的hz都是固定的,5.0将hz动态化是为了平衡空闲CPU的使用率和响应能力。

其他一些比如HyperLogLog实现改进,RDB文件新增存储LFU和LRU信息,sorted set新增两个命令ZPOPMIN/MAX,Jemalloc升级到5.1等特性就不一一解读了。

Redis Enterprise Software新特性

Redis开源许可从AGPL 迁移到将 Apache v2.0 与 Commons Clause 相结合的许可证,下面介绍的这些特性不再是开源软件,而是源码可用(source available)。

备注:Commons Clause 的初衷是为了抵御一些不良行为。如那些使用源代码,却不对开源代码维护做出补偿的公司。” ---- Commons Clause 开发者兼 FOSSA 创始人 Kevin Wang。

support docker

现在官方版本正式支持在Docker容器上部署和运行Redis集群了。有了官方的镜像,你能非常容易并快速部署几个容器来运行一个可扩展的,高可用的Redis集群。想要了解更多请戳链接:https://redislabs.com/redis-enterprise-documentation/getting-started/docker/。

Redis Labs’ Modules

Redis Labs开发了3个模块,并且被Redis企业软件(简称RS)认证,这些模块是:

RediSearch:这个模块将RS变成了一个基于内存的分布式全文索引和搜索引擎,感觉好牛逼的样子(ES表示不服)。

ReJSON:通过模块名称就知道,JSON作为Redis的内置数据类型。

ReBloom: RS具有可扩展的Bloom过滤器,并且是一个数据类型。Bloom过滤器是一种概率性的数据结构,在快速判断某些元素是否被包含在一个集合这方便表现的非常好。

以上是关于Redis 5.0 正式发布!一网打尽所有新特性!的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB 5.0新特性概览

一文掌握Flutter 2.10新特性

一文掌握Flutter 2.10新特性

一文掌握Flutter 2.10新特性

带你了解Gradle 5.0 一些新特性

redis新特性