redis5.0总共增长了12项新特性,以下:html
1.新增长的Stream(流)数据类型,这样redis就有了6大数据类型,另外五种是String(字符串),Hash(哈希),List(列表),Set(集合)及Zset(sorted set有序集合)。它弥补了其它5种数据类型不能实现的功能,好比List数据类型只能先进先出,或者后进先出,不能从中间去数据,可是Stream能够实现。redis
1)建立Stream算法
命令:XADDapi
用法:XADD key ID field string (id能够自定义)ruby
实例分布式
127.0.0.1:6379> XADD key1 * month month_value #*表明默认id "1563893367304-0" #返回值说明:前面是UNIX毫秒时间戳 后面是序列号 127.0.0.1:6379> XADD key2 0-1 car car_value #自定义ID为 0-1 "0-1"
2) 查看Stream长度性能
命令:XLEN 返回stream中元素的个数
大数据
用法:XLEN key 优化
127.0.0.1:6379> XLEN key1 (integer) 1
Stream 详情介绍 : http://www.redis.cn/topics/streams-intro.htmlspa
2.新的Redis模块api : Times and Cluster api,是一个抽象的集群消息总线,用于方便开发分布式系统。
3.RDB(redis datebase)如今用于存储 LFU(最近最少使用淘汰算法) 和 LRU(最近不常常使用淘汰算法)元数据信息。
4.集群管理器从ruby(redis-trib.rb)移植到c代码。之前建立集群时候须要经过ruby脚原本建立,如今用c代码从新编写,不用在额外按照ruby了。
5.新增长有序集合的sorted set4个命令:ZPOPMIN ,ZPOPMAX和它们的阻塞变种。
6.主动内存碎片整理功能version2版本,依赖于Jemalloc内存分配器。
7.加强HyperLogLog实现,这个功能是估算集合基数,redis5优化这个算法来节省空间。
8.更好的内存统计报告(碎片整理和内存报告)。
当咱们在redis里存一个key时候,redis会给这个key分配一个存储空间,可是当把这个key删了,redis是不会当即回收这个已经删除key所占用的空间。所以若是反复增长删除key的话,会产生不少内存碎片。这就会影响以后申请大块连续的内存空间,因此进行内存碎片整理颇有必要。
在redis4点时候已经有自动整理内存碎片的功能了,不过那时候功能还属于实验阶段。下图是redis4文档所说
redis5是在redis4的基础上将内存碎片自动清理功能进行了完善,如今该功能已经成熟。
那么这个功能有以下做用:
1.在redis运行期间自动进行内存碎片清理,能够实时释放内存空间。
2.经过内存报告来了解整个系统的内存使用状况。
在redis配置文件中查看内存碎片控制相关参数
参数说明:
1) activedefrag:内存碎片功能启动配置项,当为yes就表示开启该功能。
2)active-defrag-ignore-bytes:当内存浪费小于100M就忽略,大于100M就启动内存碎片整理,这个值能够设置的。
3)active-defrag-threshold-lower:当内存浪费小于10%就暂时忽略,大于10%就启动内存碎片整理,这个值能够设置的。
9.许多带有子命令的命令如今都有一个help子命令。
10.客户端断开和链接时候性能更好。
11.错误修复和改进。
12.Jemalloc升级到5.1版本。