在redis 2.4这vm-enabled no
是默认的,所以我使用 redis 作为数据库(而不是缓存),并且有时数据库大小可能大于内存,我应该启用它吗?
或者我应该采取预防措施maxmemory
以防止数据丢失?
答案1
如果 Redis 内存耗尽会发生什么?
在现代操作系统中,malloc() 返回 NULL 的情况并不常见,通常服务器会开始交换,Redis 性能会下降,因此您可能会注意到有些地方出了问题。INFO 命令将报告 Redis 使用的内存量,因此您可以编写脚本来监控 Redis 服务器以检查关键情况。或者,可以使用配置文件中的“maxmemory”选项来限制 Redis 可以使用的内存。如果达到此限制,Redis 将开始以错误回复写入命令(但将继续接受只读命令),或者您可以将其配置为在使用 Redis 进行缓存的情况下,当达到最大内存限制时逐出键。
什么都不做……?最糟糕的情况是,交换会导致严重的性能下降,但仅此而已?无论如何,您的应用程序中都有错误处理,不是吗?