1.1. Redis 内存占用过大优化处理

  • top 后输入 (大写)M 查看进程内存占用
  • 设置最大使用内存大小maxmemory(需要配合maxmemory-policy使用)

    1.2. LRU && LFU

  • LRU(The Least Recently Used,最近最久未使用算法)是一种常见的缓存算法。如果一个数据在最近一段时间没有被访问到,那么可以认为在将来它被访问的可能性也很小。因此,当空间满时,最久没有访问的数据最先被置换(淘汰)。

  • LFU(Least Frequently Used ,最近最少使用算法)也是一种常见的缓存算法。 如果一个数据在最近一段时间很少被访问到,那么可以认为在将来它被访问的可能性也很小。因此,当空间满时,最小频率访问的数据最先被淘汰。

  • 详细解释

1.2.1. maxmemory-policy 参数解释

  • volatile-lru :从已设置过期时间的内存数据集中挑选 (最近最久未使用) 淘汰
  • volatile-lfu : 从已设置过期时间的内存数据集中挑选 (最近最少使用) 淘汰
  • volatile-ttl : 从已设置过期时间的内存数据集中挑选即将过期的数据 淘汰
  • volatile-random : 从已设置过期时间的内存数据集中任意挑选数据 淘汰
  • allkeys-lru : 从内存数据集中挑选 (最近最久未使用) 的数据 淘汰;
  • allkeys-random : 从数据集中任意挑选数据 淘汰;
  • no-enviction : 不过期(不淘汰数据。当内存数据达到maxmemory,直接返回OOM错误)

1.2.2. /path/etc/redis.conf

  • 要考虑实际业务内存占比
maxmemory 1024mb
maxmemory-policy allkeys-lru
appendonly yes

results matching ""

    No results matching ""