是否有一个开源组件可以订阅各种数据库 activity 提要并使像 redis 这样的进程外缓存失效?

Is there an open source component that will subscribe to various database activity feeds and invalidate out of process caches like redis?

我们正在寻求实现一个基于 redis 的缓存来读取大量数据,以便将我们的数据库作为读取缓存放在前端。我想实现一个比基于 TTL 或 LRU 的驱逐更好的失效机制,以尽可能防止过时的读取。

一些数据库为表等数据库对象提供了通知机制。例如 oracle 有 Change Notifications and Postgresql has NOTIFY 用于此目的。是否有任何现有的开源 project/component 监听这些通知并使用它们使进程外缓存(如 redis 或 memcached)失效?我已经看到几个项目对进程内缓存执行此操作,但到目前为止 none 对于进程外(clustered/unclustered)缓存。

Redis Labs 在 RedisConf 2021 上宣布了他们新的“RedisCDC”解决方案,该解决方案可将数据从异构数据源无缝迁移到 Redis 和 Redis 模块。它是可配置和可扩展的,因此您可以轻松创建一个自定义阶段,当源端有更新或删除时使 Redis 键无效。

debezium 是一个组件,它实现了从使用数据库中的 CDC 到以您喜欢的格式发布这些更改的整个管道。