我们在ELK堆栈中使用Redis来缓冲我们系统之间的消息 和Elasticsearch。消息由自定义log4j-appender推送到redis,并由logstash弹出。
现在出现了问题:如果redis队列正在运行(因为例如Elasticsearch没有运行),redis切换到模式不再允许持久性更改。这是有道理的,但是从Redis弹出消息(因为例如ES再次启动)会减少redis中队列的大小。
如果队列已满,是否可以选择配置redis以允许blpop?
祝你好运 本杰明
答案 0 :(得分:1)
来自redis.conf:
默认情况下,如果启用了RDB快照,Redis将停止接受写入 (至少一个保存点)和最新的后台保存失败。 这将使用户意识到(以一种困难的方式)数据不会持久存在 在磁盘上正确,否则很可能没有人会注意到一些 灾难将会发生。
在您的情况下,您应该禁用此选项:
config set stop-writes-on-bgsave-error no
更改此选项后,别忘了重启redis。