【Redis】Redis5.0的一些新特性

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版本。

相关文章
相关标签/搜索