RDBMS与Redis的同步



我有RDS,它是真理的来源。我面临的一个挑战是将此数据库部分同步到Redis,以便服务器应用程序可以使用。这将是一个单向同步,总是朝着一个方向进行,但我无法理解我使用了什么工具来使这些同步最好以优化的方式进行。换句话说,与其加载整个数据集,不如只同步delta。

我希望有人能对如何做到这一点有一些见解。非常感谢。

大多数RDBMS都提供了一种订阅事务的方式,允许您将一个"改变数据捕获";事件流。

在这种情况下,您可以订阅数据库事件,并将更改或更新的记录放入Redis中。

例如,您可以使用Debezium来捕获事件,因为您可以看到Debezium社区有用于各种数据源的连接器。

---------          ------------         --------- 
| RDBMS |========>>| Debezium | ======> | Redis |
---------          ------------         ---------

这个演示(主要是Java(显示了这一点(由于它使用的是Redis Streams和中间状态,所以有点丰富(,事件是通过这种方法捕获的,所以在MySQL中捕获Insert/Update/Delete并将信息发送到Redis。

另一种选择,不符合你的需要,但很有趣,是做一个";写在后面";隐藏物在这种情况下,您在Redis中更新Cache,Redis使用Gears在RDBMS中推送更新。

你可以找到更多关于这个";写在后面";在这个GitHub回购中使用Redis Gears。

---------          ---------         --------- 
| Redis |========>>| Gears | ======> | RDBMS |
---------          ---------         ---------

最新更新