c# - 当数据库中的记录发生更改时,如何更新/刷新 Azure Cache for Redis?
问题描述
我希望你们都做得很好。我有几个与 Azure Redis 缓存相关的问题
我正在使用 Azure Cache for Redis 来存储我的所有客户(我这样做是因为我至少有 25000 个客户)并且在某些情况下每次获取这么多客户都需要花费太多时间。所以首先我将这些客户保存在 Azure Redis 缓存中,然后在应用程序的其他部分使用相同的缓存。
我正在使用 Azure Cache for Redis 来存储我的所有客户(我这样做是因为我至少有 25000 个客户)并且在某些情况下每次获取这么多客户都需要花费太多时间。所以首先我将这些客户保存在 Azure Redis 缓存中,然后在应用程序的其他部分使用相同的缓存。
现在我的问题是。
1- 如果数据库中客户的信息发生一些变化,如何刷新/更新我的 Azure Redis 缓存?
2- 我的缓存空间是 1GB,所以这 1GB 空间将在所有应用程序用户之间使用,或者每个应用程序用户单独使用他们的 1GB Redis 空间。
所有的答案对我来说都是非常明显的提前谢谢:)
解决方案
对于这个问题——
1- 如果数据库中客户的信息发生一些变化,如何刷新/更新我的 Azure Redis 缓存?
您可以使用 C# SDK 删除旧值并保存新值,如下所示:
IDatabase cache = Connection.GetDatabase();
cache.KeyDelete("Key");
cache.StringSet("Key", "Value");
对于这个问题——
2- 我的缓存空间是 1GB,所以这 1GB 空间将在所有应用程序用户之间使用,或者每个应用程序用户单独使用他们的 1GB Redis 空间。
Azure Cache for Redis 提供基于开源软件 Redis 的内存数据存储。Azure Redis 缓存可用作分布式数据缓存、会话存储和消息代理。通过利用 Redis 引擎的低延迟、高吞吐量性能来提高应用程序性能。
答案取决于你如何配置 Redis 缓存。在大多数情况下,一个 Redis 缓存用于应用程序中的所有用户,您可以在其中使用User Id
. 例如:(7654-UserModel
用户模型对象中 ID 为 7654 的用户的用户属性)。
您还可以在此处参考一个很好的实现示例 -教程:在 ASP.NET 上创建缓存边排行榜
推荐阅读
- javascript - 获取客户端javascript代码中可用的node.js服务器端对象
- r - 使用特定列的值从其他行中减去,但列索引在 R 中的文件之间移动
- spring - 使用反应式 DB 客户端扩展 Spring WebFlux 应用程序时出现问题:Maven 依赖项冲突?
- git - 如何 grep Git 提交消息或关键字的差异并输出更改(聚合)的文件名?
- javascript - CakePHP scriptBlock 没有在 HTML 页面中添加任何 JavaScript
- node.js - 为什么我不能直接使用 req.body 作为参数?
- javascript - React Native,为什么 react-native run-android 不起作用?
- hadoop - 使用 cygwin 在窗口 10 上配置 Hive:路径错误
- python - 在 pylint 和 mypy 中处理 Python 类重新定义警告
- javascript - 在部署在不同域上的两个仅客户端 JS 应用程序之间共享本地 blob 数据