redis内存

一 内存消耗

1 内存消耗统计

使用命令info memory获取内存指标:

used_memory 当前内存使用量
used_memory_peak 内存使用的最大值

2 最大消耗

对象内存是消耗内存最大的地方,它存储着用户所有的数据。 通过合理的管理存储数据的键值,优化内存,来缩小内存空间。

二 内存管理

内存管理从控制内存上限和回收策略来实现。

1 内存上限

通过maxmemory参数来设置最大可用内存,目的如下:
1 避免内存超过了服务器物理内存,造成内存溢出;
2 缓存场景,当超出内存最大上限时使用淘汰策略进行回收内存。

说明:
默认情况下,redis会无限使用服务器内存,为了防止内存溢出, 要设置最大内存限制。

2 回收策略

redis回收策略体现在以下两个方面:
删除到期的键对象
内存使用达到maxmemory限制时根据策略删除内存数据

三 内存优化

1 精简键值对象

key的长度越短越好,节省内存;
value的缩减一般是把业务对象序列化后进行存储

2 使用整数共享对象池

redis内部维护着0-9999的整数对象池,创建对象的使用,如果使用整数,redis底层会默认使用整数对象池的数据,从而节省了内存空间。

3 控制键的数量

当redis存储大量数据时,会存在大量键,过多的键同样会消耗内存。
可以通过减少键的个数来进行优化。

例如:
使用100万个字符串类型的key存储, 可以优化为100个hash,每个存储1000个元素。

说明:
hash优化内存的原理是使用了ziplist编码, 这是一种连续的内存压缩列表,内存占用小。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值