重启服务器后找不到redis数据



当前数据为redis,重新启动服务器后立即消失。直到昨天,它还是合适的。今天突然发生了。到目前为止还没有对配置进行任何更改。所有设置均为默认设置。

更新:所有的更新都反映在redis客户端仅为该会话。一旦重启,我就会回到原来的值。

发现错误:

不幸的是我是redis的新手。所以我不知道redis的持久性。我做了bgsave我也知道快照

首先,我们需要澄清你所说的是出乎意料的。

所有的更新都反映在redis客户端仅为该会话。一旦重启,它就会回到原来的值。

你的意思是重启客户端还是服务器?数据是从服务器还是从客户端消失?"旧价值"从何而来?

现在来看看如何获得更多的信息,了解可能的问题是什么,并解决在服务器重新启动时数据从服务器消失的情况。

由于可用的信息有限,这听起来像是数据没有持久化到磁盘。

打开Redis -cli会话到Redis实例(redis-cli如果在服务器上,否则你需要传递host和port给它)。

下一步执行命令info persistence。当Redis试图将数据写入文件系统时,它会告诉你/我们是否有问题。如果最后一次保存的状态不是"ok",则进程无法写入转储文件(默认情况下)/var/lib/redis/dump.rdb。在这种情况下,我预计会出现权限问题。如果失败,则可能是磁盘空间问题。

假设没有空间问题,检查目录/var/lib/redis及其文件的权限。如果它们与运行redis-server的用户不匹配,则需要通过chown -R redisuser:redisgroup /var/lib/redis更正它们,其中redisuser和redisgroup与运行redis-server的用户匹配。完成后,回到CLI并发出BGSAVE命令。等待几秒钟,然后重新运行info persistence命令,以验证您是否能够保存。

如果仍然失败,我建议在终端中运行redis-server查看输出,并重新运行保存,以便您可以查看报告的错误。如果您已将其记录下来,那么请检查日志中是否存在错误。

如果保存成功,则数据由服务器存储,并且在服务器端重新启动后仍然有效。如果是这种情况,当客户端重启时数据从客户端"消失",我们需要查看客户端的代码来确定它到底在做什么。

欢呼,比尔

最新更新