当数据库中的记录发生更改时,如何更新/刷新 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 中的数据更改时进行更新