我使用的是Centos 6.9。我使用yum
:安装了Redis
sudo yum update
sudo yum install redis
安装过程中没有出现任何错误。
我可以使用redis-cli
启动Redis。它给了我预期的提示:
127.0.0.1:6379>
然而,每当我发出命令(例如PING
或SET foo bar
(时,它都会给出以下错误消息:
(错误(MISCONF Redis被配置为保存RDB快照,但目前无法在磁盘上持久存在。可能修改数据集的命令被禁用。有关错误的详细信息,请查看Redis日志。
我发现MISCONF Redis被配置为保存RDB快照。并经历了它,但里面的建议都不起作用。
上面接受的答案是使用CONFIG SET
来更改Redis存储数据的目录。我在非根目录CONFIG SET dir /home/andy
中尝试过,但它仍然会给我同样的错误消息。
如果我执行BGSAVE
,它会说"后台保存已启动",但尝试SET foo bar
会返回到上面的错误。
其他答案已经讨论了这是一个权限问题。然而,我不知道这些是如何应用的,因为我已经尝试将Redis作为root
和我自己的帐户(andy
(启动,但同样的情况也发生了。
我不确定是链接上描述的问题还是其他问题。
如何进一步诊断?我是一名PHP开发人员,所以这不是我的专业领域,但我正在尝试安装Redis,这样我就可以将其与PHP应用程序一起使用,该应用程序有自己的Redis接口。
似乎yum
安装创建了一个redis用户,而您的redis实例正由该用户运行。因此,即使将dir
设置为/home/andy
,这个redis用户仍然没有权限写入andy
的主目录。
使用ps aux |grep redis
获取正在运行redis的用户,并将dir
配置到该用户具有写入权限的目录中。
此错误的快速修复方法是,转到redis-cli
并设置以下
127.0.0.1:6379> config set stop-writes-on-bgsave-error no
上面喜欢忽略它
我通过执行以下命令解决了问题:
$ redis-cli
> config set stop-writes-on-bgsave-error no