gpt4 book ai didi

java - 直写缓存 Redis

转载 作者:可可西里 更新时间:2023-11-01 11:23:25 25 4
gpt4 key购买 nike

我一直在思考如何可靠地实现直写缓存机制来存储实时数据。

基本上我们需要的是:

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 数据库中的脏记录。乍一看,这种方法似乎需要权衡取舍,如果可能的话,我希望不必走这条路。

我正在寻找一些关于如何以其他方式实现的选项。
或者这是否实际上是最可行的方法。

最佳答案

比你上面提到的更好的方法是使用 kafka 和消费者,它们将数据存储到 mongo。但是请阅读它的交付保证,因为我记得仅在 kafka 流中(两个主题之间)保证一次,在您的情况下,您的数据库应该是幂等的,因为您至少获得一次保证。并且不要忘记使用 Redis 打开 AOF,以免丢失数据。并且不要忘记,在这种情况下,您会在数据库中获得最终一致性,并承担所有后果。

关于java - 直写缓存 Redis,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56719106/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com