gpt4 book ai didi

c# - 在 Redis Azure 中存储更大 (2MB) 的对象

转载 作者:IT王子 更新时间:2023-10-29 06:04:34 25 4
gpt4 key购买 nike

我正在尝试使用 Azure 中的 Redis 在我的应用程序中进行缓存。我的每个 key 可能有 2-4MB 以上。当我在本地计算机上针对 Redis 运行我的应用程序时,一切都很好,但是当在 Azure 上运行时性能很糟糕,检索 key 通常需要 8-10 秒,实际上对我来说从原始数据重新获取此数据更快来源而不是来自缓存。

所以我想第一个问题是,我的 key 太大了吗?我使用 Redis 是不是找错了方向?

如果不是,有什么想法为什么这么慢吗?该应用程序是一个Azure网站,并且该网站和redis实例位于同一区域。我使用 stackexchange redis 客户端并在 global.asax 文件中将多路复用器创建为单例,以避免重新创建它,其代码如下:

Global.asax:

  redisConstring = ConfigurationManager.ConnectionStrings["RedisCache"].ConnectionString;

if (redisConstring != null)
{
if (RedisConnection == null || !RedisConnection.IsConnected)
{
RedisConnection = ConnectionMultiplexer.Connect(redisConstring);
}
RedisCacheDb = RedisConnection.GetDatabase();
Application["RedisCache"] = RedisCacheDb;
}

Web API Controller :

 IDatabase redisCache = System.Web.HttpContext.Current.Application["RedisCache"] as IDatabase;
string cachedJson = redisCache.StringGet(id);
if (cachedJson == null)
{
cachedJson=OutfitFactory.GetMembersJson(id);
redisCache.StringSet(id, cachedJson, TimeSpan.FromMinutes(15));


}

return OutfitFactory.GetMembersFromJson(cachedJson);

最佳答案

从评论来看,问题似乎是带宽......所以:使用更少的带宽。想法:

  1. 使用压缩(理想情况下仅在大小不重要等情况下使用)
  2. 使用更密集的格式

仅供引用,在 SE 我们使用 gzip 压缩的 protobuf-net 进行打包

关于c# - 在 Redis Azure 中存储更大 (2MB) 的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27750339/

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