redis 4.0 新特性
Redis 4.0在2017年7月发布为GA。包含几个重大改进:更好的复制(PSYNC2),线程DEL / FLUSH,混合RDB + AOF格式,活动内存碎片整理,内存使用和性能改进。目前小版本更新到4.0.6
1、主从数据同步机制
PSYNC2: 新的一种主从复制同步机制。
PSYNC1:2.8~4.0以前版本的同步为PSYNC1
一、psync1由于网络中断或者阻塞致使主从中断,恢复后必须从新到主节点dump一份全量数据同步到从节点。psync2再中断恢复后只须要同步复制延迟的那部分数据。
二、psync1在重启从节点须要从新全量同步数据。psync2只部分同步增量数据。
三、在PSYNC1 当复制为链式复制的时候,如 A>B>C 主节点为A。当A出现问题,C节点不能正常复制B节点的数据。当提高B为主节点,C须要全量同步B的数据。在PSYNC2:PSYNC2解决了链式复制之间的关联性。A出现问题不影响C节点,B提高为主C不须要全量同步。
四、在使用星形复制。如一主两从。A>B , A>C 主节点为A。当A出现问题,B提高为主节点,C 从新指向主节点B。使用同步机制PSYNC2,C节点只作增量同步便可。在使用sentinel故障转移能够较少数据从新同步的延迟时间,避免大redis同步出现的网络带宽占满。
2、命令优化
线程DEL / FLUSH 优化
Redis如今能够在不一样的线程中删除后台的key而不会阻塞服务器。 新的`UNLINK`命令与`DEL`相同,可是以非阻塞的方式工做。可是在key过时的内部依然使用了DEL。 相似地,为了让整个数据集或单个数据库异步释放,在“FLUSHALL”和“FLUSHDB”中添加了“ASYNC”选项。(手动清除大的key 可使用unlink,不阻塞)
3、慢日志记录客户端来源IP地址,这个小功能对于故障排查颇有用处。
4、混合RDB + AOF格式
混合RDB + AOF格式: 混合的RDB-AOF格式。 若是启用,则在重写AOF文件时使用新格式:重写使用更紧凑和更快的方式来生成RDB格式,并将AOF流附加到文件。 这容许在使用AOF持久性时更快地重写和从新加载。(目前相对于2.8没啥用)
5、新的管理命令
一、MEMORY 可以执行不一样类型的内存分析:内存问题的故障排除(使用MEMORY DOCTOR,相似于LATENCY DOCTOR),报告单个键使用的内存量,更深刻地报告Redis内存使用状况 。
查看键值 使用 memory MEMORY USAGE key
memory统计分析 MEMORY STATS
MEMORY MALLOC-STATS
MEMORY PURGE
二、SWAPDB 可以彻底当即(无延迟)替换同实例下的两个Redis数据库(目前咱们业务没啥用)
6、
内存使用和性能改进:
一、Redis如今使用更少的内存来存储相同数量的数据。
二、Redis如今能够对使用的内存进行碎片整理,并逐渐回收空间(这个功能依然是试用阶段,能够经过参数不开启便可)
以上列举功能为4.0的重要更新,也是对咱们目前redis大有改善,所列举的功能已经和亚运测试过。业务上尚未预发测试。
建议:新的边缘业务redis上线使用redis4.0 。先进行预发功能连通测试。一段时间后,根据实际使用状况推动redis4.0更新。
