Redis的内存调优

Redis 作为目前主流的key-value 内存数据库,因为其高并发,存储查询速率快,我们很多的热点数据均会存储到Redis 中,如果数据量较大的话,昂贵的内存消耗也是一笔很大的支出,因此Redis 内存优化是很有必要的。

内存优化方式

1.关闭 Redis 的虚拟内存[VM]功能,即 redis.conf 中 vm-enabled = no

2. 设置内存上限

   设置 redis.conf 中 maxmemory ,用于告知 Redis 当使用了多少物理内存后拒绝继续写入的请求,可防止 Redis 性能降低甚至崩溃

3. 配置内存回收策略

Redis所用内存达到maxmemory上限时会触发相应的溢出控制策略。具体策略受maxmemory-policy参数控制,Redis支持6种策略,

具体参考博客:https://blog.csdn.net/duan196_118/article/details/105148667

4. 键值对优化

降低Redis内存使用最直接的方式就是缩减键(key)和值(value)的长度。在完整描述业务情况下,键值越短越好。值对象缩减比较复杂,应该在业务上精简业务对象,去掉不必要的属性避免存储无效数据。其次在序列化工具选择上,应该选择更高效的序列化工具来降低字节数组大小。

5. 编码优化

Redis对外提供了多种数据类型,但是Redis内部对于不同类型的数据使用的内部编码不一样。内部编码不同将直接影响数据的内存占用和读写效率。

6. 在 Redis 的源代码中有一行宏定义 REDIS-SHARED-INTEGERS = 10000 ,修改该值可以改变 Redis 存储数值类型的内存开销

小结至此,欢迎小伙伴留言。。。

发布了171 篇原创文章 · 获赞 1 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/duan196_118/article/details/105301435