我刚开始使用Redis Cache,并更清楚其概念和功能。
我的目的是缓存一些SQL Server数据库表。很少有C#应用程序会频繁更新那些表,很少有人正在读取这些表。我不是要服务于数据库中的每个请求,而是要服务于缓存中的请求(从缓存中读取数据,CRUD仅直接在数据库中发生)。为了支持这种情况,一种方法是
上述方法非常简单,几乎没有挑战(我可以解决)。
根据我的经验,必须具有某种机制来自动同步具有Redis缓存的数据库表,因此我不必从其他应用程序更新缓存。
对此有任何投入吗?
答案 0 :(得分:0)
应通过将数据放入MQ并使用使用者更新Redis来同步实际的数据存储和缓存。
在将数据添加到最终存储(即SQL数据库)时,需要将该数据排队到某些服务总线或消息队列中,并让某些异步服务使用某种后台进程来进行整个同步。
您不想进入这种情况(当不使用服务总线和异步服务时):
此外,此失败可能导致缓存部分或全部损坏,您将无法自动轻松地安排一些任务来解决此问题。
关于使用Redis密钥有效期,这是一个好主意。由于Redis可以使用其内置机制来使密钥失效,因此您不应在整个后台进程中实现密钥失效。如果存在密钥是因为它仍然有效。
顺便说一句,您不会总是遇到这种情况(如果密钥没有过期,则意味着它不应被覆盖)。它可能取决于您的实际域。
希望这会有所帮助。