美文网首页
2.8-4.0 redis性能优化与功能修改

2.8-4.0 redis性能优化与功能修改

作者: 白馨_1114 | 来源:发表于2020-04-26 16:43 被阅读0次

参考文档

https://github.com/antirez/redis/blob/3.0/00-RELEASENOTES
https://github.com/antirez/redis/blob/3.2/00-RELEASENOTES
https://github.com/antirez/redis/blob/4.0/00-RELEASENOTES

Migrating from 2.8 to 3.0

  1. Redis集群分布式功能实现
  2. 支持multi-key操作(只要键解析到相同的散列槽,并且key所在的槽没有迁移,或者没有正在迁移)
  3. 新增命令:bitpos
  4. CONFIG REWRITE calls are now logged
  5. 更改fsync停写策略:如果fsync策略为零或每秒钟,AOF写入错误(比如设备上没有空间)不再中止Redis,数据库进入只读模式,其中每次写操作都以错误拒绝。一旦Redis能够再次将数据刷入到AOF文件,就恢复正常的操作
  6. 脚本性能提升:Scripting engine performances improvements.
  7. 加载truncated aof文件策略更改:Redis现在可以加载truncated AOF文件而不需要运行redis-check-aof。配置默认加载truncated(但显然没有损坏)AOF
  8. Thp日志增加:Transparent Huge Pages warnings and reporting backported.
  9. New latency tool: redis-cli --latency-dist is able to show an xterm-256 based spectrum of latencies over time.
  10. redis-cli --lru-test implemented (cache workload simulator).
  11. redis-cli --stat now shows LOAD when Redis is loading data.
  12. 性能提升:New "embedded string" object encoding resulting in less cache misses.
    在某些工作负载下获得较大的速度增益。
  13. 优化aof rewrite:通过管道的方式最小化由于AOF重写期间的“上一次写入”造成的延迟
  14. 改进了LRU近似算法
  15. WAIT命令:此命令阻塞当前客户端,直到所有以前的写命令都成功的传输和指定的slaves确认。
  16. BITCOUNT性能提升
  17. CONFIG SET accepts memory values in different units (for example you can use "CONFIG SET maxmemory 1gb")
  18. INCR性能提升
  19. 主从复制时,修改slave端机制性能提升:握手阶段改成非阻塞

Migrating from 3.0 to 3.2

  1. Jemalloc:提升版本;修改jemallocn size对redis对象更适合,从而提高效率;
  2. 默认开启tcpkeep
  3. 修改ttl和type机制:不在修改last access time of a key

Migrating from 3.2 to 4.0

  1. Slowlog增加了两个字段:the client address and name
  2. The RDB format changed. Rdb:向下兼容而不是向上兼容
  3. Writable slaves do not propagate writes to their sub-slaves
  4. Cow耗费的内存将在info中显示
  5. 增加swapdb命令
  6. 改进rdb格式以支持64位
  7. 提升Redis hash table性能
  8. RPUSHX and LPUSHX now accept a variable number of elements
  9. 支持jemalloc动态碎片整理
  10. Redis使用更少的内存,存储相同数量的数据:Redis uses now less memory in order to store the same amount of data. The gain depends a lot on the kind of dataset stored.
  11. 支持混合 RDB-AOF 持久化格式
  12. 新MEMORY命令,能够执行不同类型的内存分析:内存问题的故障排除(使用MEMORY DOCTOR,类似于LATENCY DOCTOR),报告单个key使用的内存量,与INFO命令相比更深入地报告Redis内存使用情况。
  13. lasy删除:Lazy freeing of keys. Redis is now able to delete keys in the background in a different thread without blocking the server. The new UNLINK command is the same as DEL but working in a non blocking way. Similarly an ASYNC option was added to FLUSHALL and FLUSHDB in order to let the entire dataset or a single database to be freed asynchronously.
  14. 增加lfu算法
  15. Redis modules: Redis functionalities and implement new data types(允许业务定制扩展)
  16. Psync2:https://moji.wemomo.com/doc#/detail/62516?exit=exit
    1).在旧版本 Redis 中,如果一个从服务器在 FAILOVER 之后成为了新的主节点,那么其他从节点在复制这个新主的时候就必须进行全量复制。在 Redis 4.0 中, 新主和从服务器在处理这种情况时,将在条件允许的情况下使用部分复制。
    2). 在旧版本 Redis 中, 一个从服务器如果重启了, 那么它就必须与主服务器重新进行全量复制, 在 Redis 4.0 中, 只要条件允许, 主从在处理这种情况时将使用部分复制。
    3). 新版本的Redis中,一个主库节点可以做部分复制新主库节点,如果这个新的主库节点是该节点以前的从节点。支持角色互换。
  17. HMSET被弃用(但将在未来几年得到支持,请在新代码中使用HSET)。

为了兼容docker/nat,4.0协议与3.2协议不同。所以要升级到4.0,集群需要全部重新重启。

相关文章

  • 2.8-4.0 redis性能优化与功能修改

    参考文档 https://github.com/antirez/redis/blob/3.0/00-RELEASE...

  • 惊呆了,竟然可以用这种方式秒建Redis集群?

    前面我们讲了《Redis 性能优化的 13 条军规!》,其中最重要的一条就是使用 Redis 的集群功能,那么本文...

  • webpack 性能优化

    webpack性能优化 开发环境性能优化 生产环境性能优化 开发环境性能优化 优化打包构建速度 优化调试功能 生产...

  • Redis高可用策略与集群方案

    前面几篇Redis的文章《Redis基础与入门实战》《Redis性能优化和高级用法》都是从开发的角度来介绍其在缓存...

  • 每周阅读(8/22/2016)

    Redis消息队列性能测试及知识点整理还是Redis入门 从优化性能到应对峰值流量:微博缓存服务化的设计与实践微博...

  • 第四章(nk)

    4.1 Redis入门 Redis用来提高程序的性能。对性能要求比较高的功能可以使用Redis进行开发。 原来No...

  • web应用性能测试-Apache性能优化

    Apache性能优化方面找到了两篇很赞的博文: Apache性能优化 Apache优化:修改最大并发连接数

  • 前端性能优化原理与实践(三)

    摘自前端性能优化原理与实践 DOM 优化原理与基本实践 JS是很快的,在 JS中修改DOM对象也是很快的。在JS的...

  • redis 性能优化

    客户端在向redis服务器发送多条写命令时, 使用批量命令或流水线(pipelined)的方式以减少宽带的来回传输...

  • redis性能优化

    阻塞解决 阻塞发现 1.客户端日志统计报警 2.服务端监控 阻塞原因 1.慢查询(线上设置1毫秒,避免O(n)命令...

网友评论

      本文标题:2.8-4.0 redis性能优化与功能修改

      本文链接:https://www.haomeiwen.com/subject/hdrjwhtx.html