Redis:失败而不是驱逐?

标签 redis

有没有办法设置 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/

相关文章:

Redis 流限制

ruby-on-rails - 动态计划在 resque fork 新流程时丢失

python - 'zpopmax' 可以与 redis-py-cluster 一起使用吗?

asp.net - 使用 Booksleeve 维护一个开放的 Redis PubSub 订阅

Spring Redis连接失败套接字超时: read timed out

Node.js Redis 过期与新鲜内容

python - celery 、Redis 和连接池

spring-boot - 配置spring boot和redis的问题

ruby-on-rails - Redis 的环境变量

ruby-on-rails - 打开 dump.rdb 时 Redis 权限被拒绝