Redis内存优化

Redis持久化储存不管是AOF文件还是RDB文件都会随着时间的推移越来越大。

可以尝试如下方案进行优化压缩数据的占用内存大小,方案执行过后,重写RedisAOF即可见效。

1、【位图算法】使用bit储存数据的值,这样储存的数据占用内存最小,获取数据最高效

2、使用hash、list等单一key的数据结构来重新储存之前的独立key的缓存,能够压缩内存80%,例如hash,储存结构式key-field-value,field以及value都不能超过一定的数量以及占用字节大小(例如redis.conf里的hash-max-ziplist-entries), (超过限制就不符合redis的ziplist压缩数据机制,储存的大小不会有变化) 所以要把所有的拥有大量分散的key用一部分hash结构来储存一定数量的缓存内容

3、如果maxmemory没有设置,Redis将会在找到合适的内存时继续进行分配,这样会逐步消耗掉所有空闲内存,建议配置一下这个上限。当内存达到上限时再执行写命令,Redis会返回一个内存不足的错误。 这可能会导致应用程序的错误,但不会因为内存不足导致整个机器宕机。

4、安装32位的Redis,32位每个key用到的内存非常少,但是注意32位Redis实例的内存使用量上限是4GB


==========================
dump.rdb 13M
增加100w条 string数据后
dump.rdb 977M 增长 964M
==========================

==========================
不压缩的hash
dump.rdb 13M
增加10000条 每条100条field 共100w条数据
dump.rdb 977M 增长 964M
==========================


==========================
listpack压缩
dump.rdb 13M
增加10000条 每条100条field 共100w条数据
dump.rdb 55M 增长 42M
==========================


==========================
listpack压缩
dump.rdb 13M
增加1000条 每条1000条field 共100w条数据
dump.rdb 43M 增长 30M
==========================

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值