【问题标题】:redis config question?redis配置问题?
【发布时间】:2011-03-24 04:34:25
【问题描述】:

我正在使用 redis 进行缓存,但最近我遇到了内存使用量的问题 - 由于所有内存都已用完,我不得不重新启动服务器。

这不是最大的机器但是我应该如何配置redis以避免再次出现同样的问题?

free -m
             total       used       free     shared    buffers     cached
Mem:           240        222         17          0          6         38
-/+ buffers/cache:        177         62
Swap:          255         46        209

我更改了以下设置:

超时 60
数据库 1
节省 300 1
节省 60 100
最大内存 104857600

top
top - 14:15:28 up  1:19,  1 user,  load average: 0.00, 0.00, 0.00
Tasks:  49 total,   1 running,  48 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:    245956k total,   228420k used,    17536k free,     6916k buffers
Swap:   262136k total,    47628k used,   214508k free,    39540k cached

【问题讨论】:

    标签: redis


    【解决方案1】:

    您可以在配置文件中使用“maxmemory”指令:当超过此内存量时,Redis 将过期已设置过期的较早键(将较早过期的键是第一个将被删除的键)。

    【讨论】:

      【解决方案2】:

      与 memcached 不同,redis 应该是一个数据库;因此它不会自动删除旧值以为新值腾出空间。

      您必须为每个键/值显式设置过期时间,即使如此,如果您创建键/值的速度比这更快,您也可能会溢出。

      【讨论】:

      • 谢谢,我会这样做,但是基于可用内存的配置呢?我刚刚检查了我的代码,并且在添加新密钥的任何地方都使用 setTimeout()
      【解决方案3】:

      在 Redis 2.0 中使用 Redis 虚拟内存: http://antirez.com/post/redis-virtual-memory-story.html

      【讨论】:

      • Redis 虚拟内存现已折旧。如果你想要 redis 的所有最新优点(EVAL、可变参数等),那么你应该在 redis 2.0 中找到虚拟内存的替代方案。 redis.io/topics/virtual-memory
      猜你喜欢
      • 2020-01-05
      • 2019-12-01
      • 2019-01-02
      • 2023-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-11
      • 2015-04-05
      相关资源
      最近更新 更多