安装Redis5.0
1.新的Stream数据类型【其他5种:String,set,sorted-set,hash,list】
本质是一个抽象日志。
命令操作:
消费组:
>表示读取最新的消息,第二次执行的>,是又插入之后读取的。
读取某个ID之后的消息:
Block 0 表示阻塞,也就是在客户端新插入消息后,这里才会有如下显示:
Help命令:
搭建Redis集群,不使用Ruby:
搭建伪分布式集群:在同一个机器下模拟搭建集群,通过创建6个文件夹,每个文件夹代表一台服务器,
每个文件夹下存放不同配置文件,从不同的文件启动redis就OK的。
Redis集群最少是3主3从,所以是6个文件夹。
将配置文件放置到文件夹中,然后编辑:vim redis.conf
配置数据文件:
打开持久化:
每秒钟写入一次:
设置集群:最后一个是设置最大时连时间
其他的文件里面的都是类似设置配置文件,注意5001不同就可以了:
可以在vim中使用::1,$s/5001/5002/g 将文件中的5001替换成5002
启动各个文件下的服务:我这里只启动了4台。
创建子节点:
redis-cli --cluster create node37:5001 node37:5002 node37:5003 node37:5004 node37:5005 node37:5006 --cluster-replicas 1
最后的 : --cluster-replicas 1 表示主/从节点比例是1:1.即都是3台。
5004是5001 的从节点,5005---5002 5006---5003
一共16384个槽,用来存放数据,都有编号,平均分配给主节点,从节点没有,
但是和主节点数据保持同步。
如果动态扩容,新增节点,则只能从别的节点的槽分配过去,不能新增槽。
连接:
集群动态扩容:这种操作不会分配槽,除非分片操作
分片:
分槽:
添加从节点:
指定为从节点:
删除从节点:
删除主节点:首先要归还槽
ZPOPMAX、ZPOPMIN、BZPOPMAX和BZPOPMIN用法详解
碎片整理和内存报告:
因为当我们新增一个key时,redis会新增一片内存空间,当我们删除时,
redis不会立即将内存空间还回去。
如果反复这样,就会用大量内存碎片,影响后续的内存申请:
【1】list只能先进先出,或者后进先出,不能从中间取元素,而stream可以
【2】有序集合不能添加重复成员,也不支持成员淘汰和block。而stream可以
【3】提升开发效率,贴近业务需求
【4】物联网,各种传感器产生的时间序列数据,定位未来,适合stream格式
2.新的RedisAPI:Timers和Cluster
3.RDB现在存储LFU和LRU信息
4.集群管理器从Ruby移植到C
5.新的sorted-set命令:ZPOPMIN/MAX 和阻塞变种
6.主动碎片整理V2
7.增强HyperLogLog实现【用估算的一种算法统计奇数,同时节省空间】
8.更好的内存统计报告
9.许多带有子命令的命令现在都有一个HELP命令
10.Jemalloc【内存分配器】升级到5.1