将 RDBMS 同步到 Redis
Posted
技术标签:
【中文标题】将 RDBMS 同步到 Redis【英文标题】:Syncs of RDBMS to Redis 【发布时间】:2020-08-20 23:09:55 【问题描述】:我有 RDS 作为事实来源。我面临的一个挑战是将此数据库部分同步到 Redis 以使其可供服务器应用程序使用。这将是一种始终朝一个方向进行的单向同步,但我无法理解我使用哪些工具来使这些同步以优化的方式发生。换句话说,与其加载整个数据集,不如只同步增量。
我希望有人可以就如何做到这一点提供一些见解。 谢谢!
【问题讨论】:
只有当mysql数据改变而不是整个表时才能更新Redis。 【参考方案1】:大多数 RDBMS 提供了一种订阅事务的方法,允许您实施“更改数据捕获”事件流。
在这种情况下,您可以订阅数据库事件,并将更改或更新的记录放入 Redis。
例如,您可以使用Debezium 来捕获事件,您可以看到 Debezium 社区有各种数据源的连接器。
--------- ------------ ---------
| RDBMS |========>>| Debezium | ======> | Redis |
--------- ------------ ---------
这个demonstration(主要是Java)显示了这个(有点丰富,因为它使用Redis Streams和一个中间状态),事件被这个method捕获,所以在MySQL中捕获插入/更新/删除并发送信息到 Redis。
另一个不符合您需要但有趣的选项是做一个“写在后面”缓存。在这种情况下,您更新 Redis 中的缓存,然后 Redis 使用 Gears 在 RDBMS 中推送更新。
您可以在此GitHub repo 中找到有关使用 Redis Gears 的“写在后面”的更多信息。
--------- --------- ---------
| Redis |========>>| Gears | ======> | RDBMS |
--------- --------- ---------
【讨论】:
以上是关于将 RDBMS 同步到 Redis的主要内容,如果未能解决你的问题,请参考以下文章