当数据库中的记录发生更改时,如何更新/刷新 Azure Cache for Redis?

Posted

技术标签:

【中文标题】当数据库中的记录发生更改时,如何更新/刷新 Azure Cache for Redis?【英文标题】:How to update/refresh Azure Cache for Redis when change occurs in records in Database? 【发布时间】:2020-11-23 05:34:49 【问题描述】:

我希望你们都做得很好。 我有几个与 Azure Cache for Redis 相关的问题

我正在使用 Azure Cache for Redis 来存储我的所有客户(我这样做是因为我至少有 25000 个客户)并且在某些情况下每次获取这么多客户都需要花费太多时间。所以首先我将这些客户保存在 Azure Redis 缓存中,然后在应用程序的其他部分使用相同的缓存。

我正在使用 Azure Cache for Redis 来存储我的所有客户(我这样做是因为我至少有 25000 个客户)并且在某些情况下每次获取这么多客户都需要花费太多时间。所以首先我将这些客户保存在 Azure Redis 缓存中,然后在应用程序的其他部分使用相同的缓存。

现在我的问题是。

1- 如果数据库中客户信息发生变化,如何刷新/更新我的 Azure Redis 缓存?

2- 我的缓存空间是 1GB,所以这 1GB 空间将在所有应用程序用户之间使用,或者每个应用程序用户单独使用他们的 1GB Redis 空间。

所有的答案对我来说都是非常明显的 在此先感谢:)

【问题讨论】:

【参考方案1】:

对于这个问题-

1- 如果发生一些变化,如何刷新/更新我的 Azure Redis 缓存 发生在数据库中客户的信息中?

您可以使用 C# SDK 删除旧值并保存新值,如下所示:

IDatabase cache = Connection.GetDatabase();
cache.KeyDelete("Key");
cache.StringSet("Key", "Value");

对于这个问题-

2- 我的缓存空间是 1GB,所以这 1GB 空间将用于所有 应用程序用户或每个应用程序用户使用他们的 1 GB Redis 空间 个人。

Azure Cache for Redis 提供基于开源软件 Redis 的内存数据存储。 Azure Redis 缓存可用作分布式数据缓存、会话存储和消息代理。通过利用 Redis 引擎的低延迟、高吞吐量性能来提高应用程序性能。

答案取决于您如何配置 Redis 缓存。在大多数情况下,一个 Redis 缓存用于应用程序中的所有用户,您可以使用User Id 区分相同属性和不同用户。例如:7654-UserModel(用户模型对象中 ID 为 7654 的用户的用户属性)。

您还可以在此处参考一个很好的实现示例 - Tutorial: Create a cache-aside leaderboard on ASP.NET

【讨论】:

@Naveen Alam,你有机会测试一下吗?如果此回复回答了您的问题,请将其标记为答案以帮助其他社区成员。

以上是关于当数据库中的记录发生更改时,如何更新/刷新 Azure Cache for Redis?的主要内容,如果未能解决你的问题,请参考以下文章

当磁盘上的文件发生更改时,如何让 Emacs 自动刷新所有缓冲区?

当sqlite android片段中的数据更改或删除时如何刷新recyclerview?

列表数据更改时更新Android ListActivity?

Vuejs 和 Firestore - 如何在 Firestore 中的数据更改时进行更新

当另一个片段中的数据发生更改时,如何刷新一个片段中的 RecyclerView

当浏览器中的值更改时如何刷新 django 管理表单?