前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >redis5.0新特性

redis5.0新特性

作者头像
老梁
发布2019-09-10 18:20:37
1.2K0
发布2019-09-10 18:20:37
举报
文章被收录于专栏:Java工程师成长之路

1. redis5.0新特性

1.1. 新的Stream类型

1.1.1. 什么是Stream数据类型

  1. 抽象数据日志
  2. 数据流

1.2. 新的Redis模块API:Timers and Cluster API

1.3. RDB现在存储LFU和LRU信息

1.4. 集群管理器从Ruby(redis-trib.rb)移植到C代码

1.5. 新的sorted set命令:ZPOPMIN/MAX和阻塞变种

1.6. 主动碎片整理V2

1.7. 增强HyperLogLog实现

1.8. 更好的内存统计报告

1.9. 许多带有子命令的命令现在都有一个Help子命令

1.10. 客户经常连接和断开连接时性能更好

1.11. 错误修复和改进

1.12. Jemalloc升级到5.1版本

1.13. 安装和配置redis5.0

1.14. stream命令

  1. XADD
    • 作用:创建一个stream
    • 用法:XADD key ID field string [field string ...]
    • ID:毫秒的unix时间戳 - sequence(同一毫秒的序列号)组成
    • XADD wangzhe * hero luban 创建默认id的key为hero的流数据
  2. XLEN
    • 作用:返回stream中元素的个数
    • 用法:XLEN key
  3. XDEL
    • 作用:删除id
    • 用法:XDEL key id,返回删除个数
  4. XRANGER
    • 作用:返回给定ID范围内的stream数据
    • 用法:XRANGE key start end [COUNT count]
    • 特殊ID:+:最大ID -:最小ID
  5. XREAD
    • 作用:从一个或多个stream读取数据
    • 用法:XREAD[COUNT count][BLOCK milliseconds] STREAMS key [key ...] ID [ID ...]
    • XREAD count 1 STREAMS LOL 1-1 读取流LOL中从id为1-1开始的的1条数据
    • XREAD BLOCK 0 STREAMS key $ 永久堵塞,知道流key接收到最新数据,会显示阻塞时间
  6. XGROUP
    • 作用:创建一个Consumer Group
    • 用法:XGROUP CREATE key groupname ID
  7. XREADROUP
    • 作用:从Consumer Group中读取数据
    • 用法:XREADGROUP GROUP groupname consumer [COUNT count][BLOCK milliseconds STREAMS key [key ...] ID [ID ...]
    • XREADGROUP GROUP fashi chuanrong STREAMS wangzhe > 表示查询最新数据

1.15. help特性

  1. XINFO help
  2. PUBSUB help
  3. XGROUP help
  4. ... help
  5. 有子命令的命令才可以用

1.16. redis集群

1.16.1. 创建集群数据存储文件

  1. mkdir -p /usr/local/redis-cluster
  2. mkdir 5001 5002 5003 5004 5005 5006
  3. 修改redis.conf配置文件,开启集群配置,aof配置等等
  4. 每个文件夹下配置的区别就在端口,统一命令修改
代码语言:javascript
复制
:1,$s/5001/5002/g
  1. 都启动完成后,创建六个子节点
    • ruby创建方法:redis-trib.rb create --replicas 1 192.168.4.147:500*
    • 新特性创建方法:redis-cli --cluster create 192.168.4.147:500* --cluster-replicas 1
    • 主/从 = 1 : cluster-replicas
    • redis-cli -c -h 192.168.4.147 -p 5001 以集群的模式进入

1.16.2. 动态添加节点

  1. ruby添加节点:redis-trib.rb add-node 192.168.4.147:5007 192.168.4.147:5001
  2. 新特性添加节点:redis-cli --cluster add-node 192.168.4.147:5007 192.168.4.147:5001
  3. 添加从节点:redis-cli --cluster add-node 192.168.4.147:5008 192.168.4.147:5001
  4. 在5008的client命令行里,cluster replicate 主节点,那么5008会成为该主节点的从节点

1.16.3. 分片

  1. ruby分片方法:redis-trib.rb reshard 192.168.4.147:5007
  2. 新特性分片方法:redis-cli --cluster reshard 192.168.4.147 5007

1.16.4. 删除节点

1.16.4.1. 删除从节点
  1. ruby删除方法:redis-trib.rb del-node 192.168.4.147 5008
  2. 新特性删除方法:redis-cli --cluster del-node 192.168.4.147 5008 主节点唯一id
1.16.4.2. 删除主节点(需要先把数据槽移动到其他节点,再删除主节点,防止数据丢失)
  1. ruby删除方法:redis-trib.rb reshard 192.168.4.147 5007
  2. 新特性删除方法:redis-cli --cluster reshard192.168.4.147 5007
  3. done

1.16.5. 新的Sorted Set

  1. ZPOPMAX
    • 作用:删除返回集合中分值最高的元素
    • 用法:ZPOPMAX key [count]
  2. ZPOPMIN
    • 作用:删除返回集合中分值最小的元素
    • 用法:ZPOPMIN key [count]
  3. BZPOPMAX
    • 作用:ZPOPMAX的阻塞版
    • 用法:BZPOPMAX key [key ...] timeout 4 BZPOPMIN
    • 作用:ZPOPMIN的阻塞版
    • 用法:BZPOPMIN key [key ...] timeout
1.16.5.1. 测试
代码语言:javascript
复制
ZADD exam 100 daji
ZADD exam 99 xiaoqiao
ZADD exam 98 zhenji
ZADD exam 97 anqila
ZRANGE exam 0 -1 WITHSCORES 带分数的打印,从小到大输出

ZPOPMAX exam输出最大分数的值,会从元素中删除

1.17. 碎片整理和内存报告

1.17.1. 应用场景

  1. 在运行期进行自动内存碎片清理,释放内存空间
  2. 通过内存报告了解整个系统的内存使用情况

1.17.2. 使用

  1. 配置项中找到 activedefrag yes,去掉注解,它下面和它相关的注解都解开

1.17.3. 测试

  1. 使用debug populate 300000 imooc 1000 随机产生300000个key为imooc开头的 大小为1000的数据
  2. info memory 查看内存使用情况
  3. MEMORY STATS 查看内存详情
  4. memory usage imooc:1 查看键值占用内存
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-03-04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. redis5.0新特性
    • 1.1. 新的Stream类型
      • 1.1.1. 什么是Stream数据类型
    • 1.2. 新的Redis模块API:Timers and Cluster API
      • 1.3. RDB现在存储LFU和LRU信息
        • 1.4. 集群管理器从Ruby(redis-trib.rb)移植到C代码
          • 1.5. 新的sorted set命令:ZPOPMIN/MAX和阻塞变种
            • 1.6. 主动碎片整理V2
              • 1.7. 增强HyperLogLog实现
                • 1.8. 更好的内存统计报告
                  • 1.9. 许多带有子命令的命令现在都有一个Help子命令
                    • 1.10. 客户经常连接和断开连接时性能更好
                      • 1.11. 错误修复和改进
                        • 1.12. Jemalloc升级到5.1版本
                          • 1.13. 安装和配置redis5.0
                            • 1.14. stream命令
                              • 1.15. help特性
                                • 1.16. redis集群
                                  • 1.16.1. 创建集群数据存储文件
                                  • 1.16.2. 动态添加节点
                                  • 1.16.3. 分片
                                  • 1.16.4. 删除节点
                                  • 1.16.5. 新的Sorted Set
                                • 1.17. 碎片整理和内存报告
                                  • 1.17.1. 应用场景
                                  • 1.17.2. 使用
                                  • 1.17.3. 测试
                              相关产品与服务
                              云数据库 Redis®
                              腾讯云数据库 Redis®(TencentDB for Redis®)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
                              领券
                              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档