redis5.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命令
- XADD
- 作用:创建一个stream
- 用法:XADD key ID field string [field string ...]
- ID:毫秒的unix时间戳 - sequence(同一毫秒的序列号)组成
- XADD wangzhe * hero luban 创建默认id的key为hero的流数据
- XLEN
- 作用:返回stream中元素的个数
- 用法:XLEN key
- XDEL
- 作用:删除id
- 用法:XDEL key id,返回删除个数
- XRANGER
- 作用:返回给定ID范围内的stream数据
- 用法:XRANGE key start end [COUNT count]
- 特殊ID:+:最大ID -:最小ID
- 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接收到最新数据,会显示阻塞时间
- XGROUP
- 作用:创建一个Consumer Group
- 用法:XGROUP CREATE key groupname ID
- 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特性
- XINFO help
- PUBSUB help
- XGROUP help
- ... help
- 有子命令的命令才可以用
1.16. redis集群
1.16.1. 创建集群数据存储文件
- mkdir -p /usr/local/redis-cluster
- mkdir 5001 5002 5003 5004 5005 5006
- 修改redis.conf配置文件,开启集群配置,aof配置等等
- 每个文件夹下配置的区别就在端口,统一命令修改
:1,$s/5001/5002/g
- 都启动完成后,创建六个子节点
- 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. 动态添加节点
- ruby添加节点:redis-trib.rb add-node 192.168.4.147:5007 192.168.4.147:5001
- 新特性添加节点:redis-cli --cluster add-node 192.168.4.147:5007 192.168.4.147:5001
- 添加从节点:redis-cli --cluster add-node 192.168.4.147:5008 192.168.4.147:5001
- 在5008的client命令行里,cluster replicate 主节点,那么5008会成为该主节点的从节点
1.16.3. 分片
- ruby分片方法:redis-trib.rb reshard 192.168.4.147:5007
- 新特性分片方法:redis-cli --cluster reshard 192.168.4.147 5007
1.16.4. 删除节点
1.16.4.1. 删除从节点
- ruby删除方法:redis-trib.rb del-node 192.168.4.147 5008
- 新特性删除方法:redis-cli --cluster del-node 192.168.4.147 5008 主节点唯一id
1.16.4.2. 删除主节点(需要先把数据槽移动到其他节点,再删除主节点,防止数据丢失)
- ruby删除方法:redis-trib.rb reshard 192.168.4.147 5007
- 新特性删除方法:redis-cli --cluster reshard192.168.4.147 5007
- done
1.16.5. 新的Sorted Set
- ZPOPMAX
- 作用:删除返回集合中分值最高的元素
- 用法:ZPOPMAX key [count]
- ZPOPMIN
- 作用:删除返回集合中分值最小的元素
- 用法:ZPOPMIN key [count]
- BZPOPMAX
- 作用:ZPOPMAX的阻塞版
- 用法:BZPOPMAX key [key ...] timeout
4 BZPOPMIN - 作用:ZPOPMIN的阻塞版
- 用法:BZPOPMIN key [key ...] timeout
1.16.5.1. 测试
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.17.2. 使用
- 配置项中找到 activedefrag yes,去掉注解,它下面和它相关的注解都解开
1.17.3. 测试
- 使用debug populate 300000 imooc 1000 随机产生300000个key为imooc开头的 大小为1000的数据
- info memory 查看内存使用情况
- MEMORY STATS 查看内存详情
- memory usage imooc:1 查看键值占用内存
redis5.0新特性的更多相关文章
- Streams:深入理解Redis5.0新特性
概述 相较于Redis4.0,Redis5.0增加了很多新的特性,而streams是其中最重要的特性之一.streams是redis 的一种基本数据结构,它是一个新的强大的支持多播的可持久化的消息队列 ...
- Redis系列 | Redis5.0 新特性
- Redis 6.0 新特性-多线程连环13问!
Redis 6.0 来了 在全国一片祥和IT民工欢度五一节假日的时候,Redis 6.0不声不响地于5 月 2 日正式发布了,吓得我赶紧从床上爬起来,学无止境!学无止境! 对于6.0版本,Redis之 ...
- 浅谈Tuple之C#4.0新特性那些事儿你还记得多少?
来源:微信公众号CodeL 今天给大家分享的内容基于前几天收到的一条留言信息,留言内容是这样的: 看了这位网友的留言相信有不少刚接触开发的童鞋们也会有同样的困惑,除了用新建类作为桥梁之外还有什么好的办 ...
- Java基础和JDK5.0新特性
Java基础 JDK5.0新特性 PS: JDK:Java Development KitsJRE: Java Runtime EvironmentJRE = JVM + ClassLibary JV ...
- Visual Studio 2015速递(1)——C#6.0新特性怎么用
系列文章 Visual Studio 2015速递(1)——C#6.0新特性怎么用 Visual Studio 2015速递(2)——提升效率和质量(VS2015核心竞争力) Visual Studi ...
- atitit.Servlet2.5 Servlet 3.0 新特性 jsp2.0 jsp2.1 jsp2.2新特性
atitit.Servlet2.5 Servlet 3.0 新特性 jsp2.0 jsp2.1 jsp2.2新特性 1.1. Servlet和JSP规范版本对应关系:1 1.2. Servlet2 ...
- 背水一战 Windows 10 (1) - C# 6.0 新特性
[源码下载] 背水一战 Windows 10 (1) - C# 6.0 新特性 作者:webabcd 介绍背水一战 Windows 10 之 C# 6.0 新特性 介绍 C# 6.0 的新特性 示例1 ...
- C# 7.0 新特性2: 本地方法
本文参考Roslyn项目中的Issue:#259. 1. C# 7.0 新特性1: 基于Tuple的“多”返回值方法 2. C# 7.0 新特性2: 本地方法 3. C# 7.0 新特性3: 模式匹配 ...
随机推荐
- Springboot+Mybatis+Thymeleaf
工具Eclipse 2018 Maven 配置 ThymeLeaf 安装: https://blog.csdn.net/xingqibaing/article/details/82787164 sp ...
- mybatis中怎样使用having?
1.dao层代码 List<ErgTipSimpleBo> queryListMore(@Param("typeId") Integer typeId,@Param(& ...
- Spring Ioc 常用注解
在开发中spring ioc的配置方式有多种方式,常用的一般都是byName.byType .以及其自动装配可以查看http://www.cnblogs.com/gubai/p/9140840.htm ...
- 制作DNS字典
1.收集字典 一般kali自带的DNS爆破工具都会有自己的字典,使用 dpkg -L dns爆破软件名 查询字典的路径.txt文件一般是字典. 合并到一个txt文件中. 2.删除字典中重复的字符串 ...
- 2019.03.09 codeforces620E. New Year Tree(线段树+状态压缩)
传送门 题意:给一棵带颜色的树,可以给子树染色或者问子树里有几种不同的颜色,颜色值不超过606060. 思路:颜色值很小,因此状压一个区间里的颜色用线段树取并集即可. 代码: #include< ...
- PyCharm 安装教程(Windows)
python教程 http://www.runoob.com/python3/python3-basic-syntax.html PyCharm 是一款功能强大的 Python 编辑器,具有跨平台性, ...
- JAVA执行远端服务器的脚本
JAVA执行远端服务器的脚本 问题描述 实现思路 技术要点 代码实现 问题描述 工作中遇到这样一个问题,我们的应用为了实现高可用会采取双机部署,拓扑图大致如下: 这种方案可以简单的保证高可用,即便应用 ...
- Python中使用cx_Oracle调用Oracle存储过程
import cx_Oracle as cx import datetime def execute_sql(): # 声明变量 date_time = datetime.datetime.now() ...
- Python的list循环遍历中,删除数据的正确方法
在遍历list,删除符合条件的数据时,总是报异常,代码如下: num_list = [1, 2, 3, 4, 5] print(num_list) for i in range(len(num_lis ...
- poj 3687 Labeling Balls(拓补排序)
Description Windy has N balls of distinct weights from 1 unit to N units. Now he tries to label them ...