gpt4 book ai didi

sql-server - 将SQL表与Azure Redis缓存同步

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

我刚刚从redis缓存开始,对它的概念和功能有了更清晰的认识。
我的目的是缓存很少的sql server数据库表。很少有C应用程序经常更新这些表,很少有人在阅读这些表。我不想为来自数据库的每个请求提供服务,而是希望为来自缓存的请求提供服务(从缓存读取数据,crud只会直接发生在数据库上)。为了支持这种情况,一种方法是,
使用redis cache缓存所有表。
服务应用程序从该缓存获取请求。
当任何应用程序更新任何表时,更新我的
相应地缓存并从缓存向读卡器提供新的副本。
上面的方法非常直截了当,没有什么挑战(我可以应付)。
根据我的经验,必须有一些机制来自动同步数据库表和redis缓存,这样我就不必更新来自不同应用程序的缓存。
有什么意见吗?

最佳答案

实际的数据存储和缓存应该通过将数据放入mq并使用consumer更新redis来同步。
当您将数据添加到最终存储(即您的sql数据库)时,您需要将该数据排队到某个服务总线或消息队列,并让某个异步服务使用某种后台进程来完成整个同步。
您不希望进入这种情况(不使用服务总线和异步服务时):
使您的请求或进程变慢,因为用户需要等待
直到数据同时存储在数据库和缓存中。
在缓存过程中有失败的风险,并且无法
拥有重试策略(这通常是
服务总线或一些消息队列)。
此外,此故障可能会导致部分或完全缓存损坏,您将无法自动轻松地安排一些任务来修复此情况。
关于使用redis密钥过期,这是一个好主意。由于redis可以使用其内置机制使密钥过期,因此不应该从整个后台进程实现密钥过期。如果密钥存在是因为它仍然有效。
顺便说一句,你不会总是在这种情况下(如果一个密钥没有过期,这意味着它不应该被覆盖)。这可能取决于您的实际域。
希望这有帮助。

关于sql-server - 将SQL表与Azure Redis缓存同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56555795/

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