有没有办法设置 Redis,使其在内存不足时永远不会逐出数据并导致硬故障?我需要确保没有数据丢失;我没有将其用作永久数据存储机制,而是用于更多的用于大容量/高性能数据转换的临时数据存储机制。
是否有替代的 NoSQL 数据存储可以在性能上接近,但在内存用完时利用磁盘读/写?这并不理想,但总比丢失数据好。我正在读取/写入/更新数百万个 JSON 文档(超过 12 万个并且还在增长)。
最佳答案
是的。
首先确保将 maxmemory
指令(在 conf 文件中或使用 CONFIG SET
)设置为 0 以外的值。这将指示 Redis 使用该值是内存上限。
接下来,将 maxmemory-policy
指令设置为 noeviction
- 这将导致 Redis 在 maxmemory
时返回 OOM(内存不足)错误> 尝试写入时到达。
有关这些指令的更多详细信息,请参阅配置文件中的文档:http://download.redis.io/redis-stable/redis.conf
关于Redis:失败而不是驱逐?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26433381/