一、背景
在使用redis異步驅動方式下,執行hset指令時,報錯
redisAsyncCommand((redisAsyncContext *)c, dumpReply, "hset role:10001", "hset role:10001 name %s age %d sex %s", "mark", 31, "male");
二、原因
2.1 、磁盤空間不足:Redis 所在的磁盤可能沒有足夠的空間來保存 RDB 快照。
2.2、文件系統權限問題:Redis 進程可能沒有權限寫入指定的目錄。
2.3、磁盤故障:硬盤可能出現故障,導致寫入操作失敗。
2.4、Redis 配置問題(大概率都是配置有問題)
三、解決方案
目前我排查下來,其他都沒問題,只有配置這項了。
3.1、第一種方案,只有該次有效
config set stop-writes-on-bgsave-error no
3.2 、第二種方案,長期生效
修改redis.conf文件,將set stop-writes-on-bgsave-error修改為no
然后關掉redis服務,重新啟動redis服務。