美文网首页
azure redis 最佳实践

azure redis 最佳实践

作者: 慢手暗夜 | 来源:发表于2018-09-04 10:45 被阅读0次

azure redis 配置建议

  • production环境用standard或premium 级别的redis
  • redis客户端需要配置连接超时时间,至少10到15秒
  • 应用需要处理redis断连登异常情况
  • 配置maxmemory-reserved为总cache size的10%左右,保证系统的及时响应
  • redis的value size最好不要太大,100KB已经算是很大了
  • redis所在的region最好和应用在同一个region
  • 复用redis连接
  • 避免复杂的命令

内存管理

LRU是redis最主要的淘汰算法,在redis4.0,引入了新的LFU算法。
淘汰策略:

  • noeviction: 不进行淘汰,当内存满的时候,直接返回error。
  • allkeys-lru: 根据LRU算法淘汰keys
  • volatile-lru: 根据LRU算法淘汰keys,但是只限于有expire配置的keys
  • allkeys-random: 随机淘汰keys,释放内存
  • volatile-random: 随机淘汰keys,但是只限于有expire配置的keys
  • volatile-ttl: 淘汰有expire配置的keys,会先淘汰TTL较小的keys

Tips:

  1. volatile-lru, volatile-random, volatile-ttl 和noeviction类似,当没有可淘汰的keys时,直接返回error。
  2. 当redis中既有临时的key,也有永久key,volatile-lru 和volatile-random是最常用的策略。
  3. 给key设置expire,相应的会消耗内存。所以allkeys-lru的内存利用率会更高。
  4. redis并没有用一个精确的LRU算法,因为精确的LRU算法会更加消耗内存,也更复杂。

redis过期键的三种清除策略:

  • 被动删除:当读/写一个已经过期的key时,会触发惰性删除策略,直接删除掉这个过期key
  • 主动删除:由于惰性删除策略无法保证冷数据被及时删掉,所以Redis会定期主动淘汰一批已过期的key
  • 当前已用内存超过maxmemory限定时,触发主动清理策略

performance test

tool: redis-benchmark.exe

相关文章

网友评论

      本文标题:azure redis 最佳实践

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