我一直在思考如何可靠地实现写入穿透缓存机制来存储实时数据。
基本上我们需要的是这个:
Save data to Redis -> Save to database (underlying)
Read data from Redis <- Read from database in case unavailable in cache
在线资源在实施此缓存策略方面似乎很少。
问题是:
1)Redis和数据库(在我这种情况下为Mongo)之间没有内置事务的可能性。
2)没有事务意味着对基础数据库的写入不可靠。
我认为最直接的实现方式是使用类似Kafka的代理,并将消息放入持久队列中以供稍后处理。
因此,Kafka将成为可靠处理的负责实体。
另一种方式是通过在调度程序中具有自定义实现来检查Redis数据库中的脏记录。初步思考似乎存在一些权衡取舍,如果可能的话,我不想走这条路。
我正在寻找其他实施此方法的选项。
或者是否实际上这是最可行的方法。