redis - 两个数据库之间的 Redis 差异

标签 redis

查看两个不同 Redis 数据库内容差异的最佳方法是什么?我们有一个开发和生产部署,我们的生产实例似乎没有与开发完全相同的数据,但我们需要一种可靠的简单方法来测试它——有没有一种不用编写太多我们自己的代码就可以做到这一点的好方法?

最佳答案

如果您的生产数据变化率很高,那么这样做会很困难。因此,对于这个答案,让我们假设您的数据流失率不高,或者您可以在数据流失率较低的静止时间执行此操作。

为了从 shell 脚本的角度来看,您需要并行执行第一个任务。

  1. 使用 redis-cli 中的 RDB 保存选项为每个服务器下载数据的本地副本。
  2. 比较文件的哈希值,例如 md5sum。如果它们相同,则数据相同。

如果流失率足够低,您可以获得可比较的转储,这将确定它们是否不同,但不会确定哪些数据不同(如果有的话)。但是,您可以将其用作避免深入挖掘的条件,因为深入挖掘实际上必须搜查数据库。

或者,如果它们不同,您可以编写一些使用 RDB 文件和 RDB 文件解析器之一的东西来比较它们并输出它发现的差异。

事实上,这种方法比搜查服务器要好得多,因为在此过程中数据可能会发生变化,而转储文件分析方法比较的是固定时间点。

关于redis - 两个数据库之间的 Redis 差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32687205/

相关文章:

sorting - 重置 Redis 排序集

php - 为什么我在使用 Laravel redis 集群时出现异常?

mysql - 如何使用乐观并发控制解决直读缓存中的冲突?

node.js - 跨多个 Amazon EC2 实例水平扩展 socket.io

node.js - NodeJS分布式处理(分区-集群)

python - 为什么这个gevent程序中只与redis建立了一个连接?

spring - RedisCacheManager 在代码中 Autowiring 但未按预期工作

bin/sh 脚本中的 Redis 语法帮助?

redis - redis缓存超时错误

spring-boot - 我不知道为什么会这样。 jedis 创建名称为 'jedisConnectionFactory' 的 bean 时出错