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

时间:2014-07-22 13:19:21

标签: redis

重新启动服务器后,存在的数据是redis消失了。到昨天它是正确的。突然它今天发生。到目前为止,配置没有任何变化。所有设置都是默认设置。

更新: 所有更新都只反映在该会话的redis客户端中。一旦重新启动,我就会转到旧值本身。

想象错误:

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

1 个答案:

答案 0 :(得分:2)

首先,我们需要澄清你所说的意外。

通过

  

所有更新仅反映在该会话的redis客户端中。   一旦重新启动,它就会转换为旧值。

你的意思是说你重启客户端或服务器?数据是否从客户端的服务器中消失了? “旧价值”来自何处?

现在了解如何获取有关可能出现问题的更多信息,并解决服务器重启时数据从服务器中消失的情况。

由于信息有限,这听起来好像数据没有持久存储到磁盘上。可能有几个原因。

打开redis-cli会话到Redis实例(redis-cli如果在服务器本身上,否则你需要将主机和端口传递给它。)

接下来运行命令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查看输出,然后重新运行保存,以便查看报告的错误。如果你记录了这个,那么检查日志中的错误。

如果保存成功,则服务器将存储数据,并且在服务器端重新启动后将继续存在。如果是这种情况,并且当客户端重新启动时数据从客户端“消失”,我们将需要从客户端查看代码以确切地确定它正在做什么。

干杯, 比尔