如何正确设置Redis以应对内存满的情况?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2017个文字,预计阅读时间需要9分钟。
在Redis中,如果数据过期了,通常会被自动删除。但如果过期数据过多,即使删除也无法完全清除(每次删除完成的key数量超过25%),且这些key也不会再被客户端请求,那么就无法通过常规方式完全删除这些数据。
上回在《Redis 数据过期了会被立马删除么?》说到如果过期的数据太多,定时删除无法删除完全(每次删除完过期的 key 还是超过 25%),同时这些 key 再也不会被客户端请求,就无法走惰性删除,内存被打满会怎样?
答案是走内存淘汰机制。
故事从一个叫 Redis 帝国的三公九卿官职说起……
在 Redis 帝国中,整个帝国的国法、家法和军法等都记录在 redis.conf中,它控制着整个帝国的运行。
公务员占用的国家地盘资源大小限定由名叫「maxmemory」的司法官员制定,一共有两种方式实现:
- 在运行时使用
CONFIG SET maxmemory 4gb指定帝国官职人员最大地盘资源为 4GB; - 将
maxmemory 4gb法令记录到redis.conf「法典」中,在帝国运转指定使用该「法典」运行。
需要注意的是,如果 maxmemory 为 0 ,在 64 位「空间」上则没有限制,而 32 位「空间」则有 3GB 的隐式限制。
本文共计2017个文字,预计阅读时间需要9分钟。
在Redis中,如果数据过期了,通常会被自动删除。但如果过期数据过多,即使删除也无法完全清除(每次删除完成的key数量超过25%),且这些key也不会再被客户端请求,那么就无法通过常规方式完全删除这些数据。
上回在《Redis 数据过期了会被立马删除么?》说到如果过期的数据太多,定时删除无法删除完全(每次删除完过期的 key 还是超过 25%),同时这些 key 再也不会被客户端请求,就无法走惰性删除,内存被打满会怎样?
答案是走内存淘汰机制。
故事从一个叫 Redis 帝国的三公九卿官职说起……
在 Redis 帝国中,整个帝国的国法、家法和军法等都记录在 redis.conf中,它控制着整个帝国的运行。
公务员占用的国家地盘资源大小限定由名叫「maxmemory」的司法官员制定,一共有两种方式实现:
- 在运行时使用
CONFIG SET maxmemory 4gb指定帝国官职人员最大地盘资源为 4GB; - 将
maxmemory 4gb法令记录到redis.conf「法典」中,在帝国运转指定使用该「法典」运行。
需要注意的是,如果 maxmemory 为 0 ,在 64 位「空间」上则没有限制,而 32 位「空间」则有 3GB 的隐式限制。

