azure redis 最佳实践

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容