redis配置问题?

时间:2010-08-02 12:16:39

标签: redis

我正在使用redis进行缓存,但最近我遇到了使用内存量的问题 - 由于所有ram都已被使用,因此必须重启我的服务器。

这不是最大的机器,但我应该如何配置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
maxmemory 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

3 个答案:

答案 0 :(得分:5)

你可以在配置文件中使用“maxmemory”指令:当超过这个内存量时,Redis将使已经设置了过期的早期密钥到期(将要删除的第一个过期的密钥)。

答案 1 :(得分:1)

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

您必须明确设置每个键/值的过期时间,即使这样,如果您创建的键/值的速度要快,也会溢出。

答案 2 :(得分:1)

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