• Redis5.0版本的新特性


    Redis5版本是一个大的版本升级,相比之前版本,新增了一些新特性,这里就简单介绍一下,重点介绍一下新的数据类型和命令。

    新特性

    • 新的流数据类型(Stream data type)
    • 新的 Redis 模块 API:定时器、集群和字典 API(Timers, Cluster and Dictionary APIs)
    • RDB 增加 LFU 和 LRU 信息
    • 集群管理器从 Ruby (redis-trib.rb) 移植到了redis-cli 中的 C 语言代码
    • 新的有序集合(sorted set)命令:ZPOPMIN/MAX 和阻塞变体(blocking variants)
    • 升级 Active defragmentation 至 v2 版本
    • 增强 HyperLogLog 的实现
    • 更好的内存统计报告
    • 许多包含子命令的命令现在都有一个 HELP 子命令
    • 客户端频繁连接和断开连接时,性能表现更好
    • 升级 Jemalloc 至 5.1 版本
    • 引入 CLIENT UNBLOCK 和 CLIENT ID
    • 新增 LOLWUT 命令
    • 在不存在需要保持向后兼容性的地方,弃用 "slave" 术语
    • 网络层中的差异优化
    • 对 Redis 核心代码进行了重构并在许多方面进行了改进
    • 引入动态的 HZ(Dynamic HZ) 以平衡空闲 CPU 使用率和响应性

    新数据类型——Stream

    Redis中的五种数据类型,这是大家经常提到的一句话,在Redis5.0之后,就得改成六种数据类型了。新增的Stream类型其实是一个时序数据结构。

    • 特点
      1.每条记录是结构化、可扩展的对,不是一个字符串。
      2.每条记录在日志中有唯一标识,类似于Mysql表里的自增ID,标识中包含了时间戳信息,单调递增。
      3.可以根据需要自动清理历史记录。
      4.保存在内存中,支持持久化。

    • 应用场景
      其他五种数据结构无法实现的需求,可以通过stream来实现。例如List类型只能是先进先出或者先进后出,不能取出中间某部分数据,Stream类型可以实现。

    • 使用命令
      1.创建 xadd key id field string[field string]
      2.删除 xdel key id
      3.查看长度 xlen key
      4.查看范围 xrange key start end(+表最大,-表最小)
      5.读取多个数据 xread stream key id
      6.创建消费组 xgroup create key groupname id
      7.从消费组中读取 xread group groupname customer stream key id

    命令演示

    创建

    127.0.0.1:6379> xadd test_stream * username zhangsan age 30
    "1584793793095-0"
    


    命令代表往test_stream添加一条数据{"username":"张三","age":30},Stream类型存储的不是一个字符串,而是多个键值对。* 表示由redis服务端生成一个entryid,也就是每条数据的唯一标识。1584793793095-0就是entryid的值,可以理解为日志中的行号。1584793793095标识当前时间的毫秒时间戳,0标识这一时刻的第几个数据。当然也可以指定entryid的值,确保唯一性就行,例如:

    127.0.0.1:6379> xadd test_stream1 0001 a 1 b 2
    "1-0"
    

    上述命令指定了entryid的值,需要注意的是,Stream的流是只增不减的,如果entryid的值比之前的小,执行会报错,如果有相同的entryid也会报错,例如:

    查询所有

    查询指定entryid的值范围,可以理解为取某个时间段内的数据

    查询数据总个数

    查询前N个

    新命令——ZPOPMAX/MIN

    原有的有序集合,增加了类似List的pop命令。

    • ZPOPMAX 命令用于移除并弹出有序集合中分值最大的 count 个元素
    • ZPOPMIN 命令用于移除并弹出有序集合中分值最小的 count 个元素
    • BZPOPMAX 和 BZPOPMIN 是上述两个命令的阻塞变种

    新命令——CLIENT ID

    Client id返回当前连接的ID,每个ID符合如下约束:
    1.永不重复,可以判断当前链接是否断链过
    2.单调递增,可以判断不同链接的接入顺序

    烦请各位看官觉得有用就给个推荐吧!

  • 相关阅读:
    跨域请求页面跳转
    media query学习笔记
    JSONP跨域数据调用
    【转】轮询、长轮询、iframe长连接、web socket
    [转]node.js学习笔记(二)
    【转】require.js学习笔记(二)
    【转】require.js学习笔记(一)
    计算星期
    确定母亲节
    计算时钟的夹角
  • 原文地址:https://www.cnblogs.com/yqzc/p/12537467.html
Copyright © 2020-2023  润新知