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

标签 redis

目前的数据是redis,重启服务器后消失一次。昨天之前是正常的。今天突然出现了。到目前为止没有对配置进行任何更改。所有设置只是默认设置。

更新: 所有更新仅反射(reflect)在该 session 的 redis 客户端中。重新启动后,我转到了旧值本身。

发现错误:

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

最佳答案

首先,我们需要澄清一下您所说的意外情况。

通过

All the updates are reflected in redis client only for that session. Once restart it went to the old value itself.

你是说重启客户端还是服务端?数据是否从客户端的服务器消失了? “旧值”从何而来?

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

由于可用信息有限,这听起来数据并未持久保存到磁盘。可能有多种原因。

打开与 Redis 实例的 redis-cli session (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- 的用户匹配服务器。完成后,返回到 CLI 并发出 BGSAVE。等待几秒钟,然后重新运行 info persistence 命令以验证您是否能够保存。

如果仍然失败,我建议在终端中运行 redis-server 以查看输出,然后重新运行保存,以便您可以查看报告的错误。如果您记录了此内容,请检查日志中的错误。

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

干杯, 账单

关于redis - 服务器重启后找不到redis数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24888519/

相关文章:

php - Redis session disable_locking 为真

user-interface - 用于管理 Redis 的 GUI

ServiceStack 的 Redis 异常

python - Redis 过期通知和 Flask

nosql - Redis 和 Membase 之间的主要区别是什么?

redis - 使用 AWS ElastiCache 请求中的 Airflow CROSSSLOT key 未散列到同一插槽错误

sorting - Redis 排序集合

node.js - 在插入 rethinkdb 之前,如何使用 redis 缓冲 twitter 流?

redis - 在 Redis 中执行 sunion 时获取计数的方法

java Redis 客户端连接到多个 aws 只读副本端点?