问题标签 [azure-redis-cache]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
azure - StackExchange.Redis + Azure Redis 速度不一致
我正在使用 Azure Redis 和 StackExchange.Redis 来提供 Twitter 之类的新闻提要。这发生在我身上:
我将代码发布到我的云服务,一切正常,包含 60 个提要项的页面在 300 毫秒内加载,这对我来说太棒了。这可以工作一段时间,比如说几个小时,然后提要页面的加载速度会减慢到 8000 毫秒左右。
奇怪的是,当我在 localhost 上测试相同的代码时,它始终保持在 500 毫秒左右的速度。我连接到同一个 Redis 实例,它在美国,我在欧洲(云服务和 Redis 在同一个 Azure 区域 - 美国东部)。
通过 Azue 门户,我可以看到 Redis Server 负载始终低于 10%,CPU 使用率低于 40%。由于这个和 localhost 上的良好速度加载,我相信 Redis 没有任何问题,显然我在我的代码中做了一些愚蠢的事情,我看不到它,所以这是我的代码:
这是我如何初始化与 Redis 的连接:
这是 API 调用(调用我的 FeedService):
这是 FeedService 中的这个方法:
我想添加到 SQL(即调用方法 GetFeedWorkoutsMobileAsync)永远不会发生,所以 FeedItems 总是从 Redis 获取。在 Redis 中,它们存储为序列化对象列表。
现在这里是 CreateRedisFeedViewModelAsync:
我相信这种方法存在问题,但我无法识别它:
有趣的是,当生产中的提要调用减慢时,如果我尝试使用相同的数据对本地主机上的同一个 RedisDB 进行相同的调用,它比生产上要快得多(例如在生产上持续 8000 毫秒,在本地主机上需要 500 毫秒)
asp.net - 使用 Azure Redis 缓存存储 Session 数据和 SignalR 背板
因此,我正在准备一个较旧的企业级 ASP.net 解决方案,以转移到 Azure。我们希望将单个 Azure Redis 缓存用于会话状态和 SignalR 背板。
作为团队的新成员,不熟悉 SignalR,我在 这里构建教程作为起点。从那里,我设置了 Session-State 提供程序并能够使其正常工作。我写了一篇关于它的博客文章,但我还没有足够的声誉来分享。:/
但是到了实现 SignalR Redis 背板的时候,我没有成功。
这是我尝试过的代码:
这是我在启动网站时遇到的错误示例,并导航到进行 SignalR 调用的页面。
有人成功做到这一点吗?
c# - 迁移到 RedisSessionState 提供程序
我正在尝试将 Windows Azure 上的会话状态提供程序从 In Proc 迁移到 Redis。我正在使用云服务。我有大约 100 个类,没有一个被标记为可序列化的。有没有办法可以将所有类标记为可序列化?
Microsoft.Web.RedisSessionStateProvider.dll 中出现“System.Runtime.Serialization.SerializationException”类型的异常,但未在用户代码中处理
附加信息:在程序集“XX.Model,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null”中键入“RuleSet”未标记为可序列化。
azure - Redis 连接可能不会用 c# 关闭
我正在连接到 Azure Redis,它们向我显示了与我的 redis 服务器的打开连接数。我有以下 c# 代码,其中包含我所有的 Redis 集和获取。这应该是泄漏连接吗?
azure - 是否可以将 Azure Redis 缓存迁移到其他订阅?
我正在使用订阅 A 中的 Azure Redis 缓存,我想将 redis 的当前订阅 (A) 更改为 B(新订阅)。
a - 有可能吗?如何?如果不 b - 我可以为在 B 下创建的新 Redis 保留相同的访问密钥吗?c# - 无法加载类型“Microsoft.Web.Redis.RedisSessionStateProvider”-AzureRedisSessionStateProvider
我正在使用 Redis Azure 缓存进行会话,但在 Azure 中部署时收到以下错误,无法加载类型“Microsoft.Web.Redis.RedisSessionStateProvider”
我通过卸载并重新安装软件包并修改 webconfig 尝试了很多次,但仍然是同样的问题。
任何帮助表示赞赏..
performance - Azure Redis 内存使用情况(w3wp.exe 转储)洞察
谁能告诉我 Visual Studio 的内存转储中概述的行为类型
是正常的?例如 StackExchange.Redis.PhysicalConnection 在包含大小(字节)上运行得那么高吗?还是真的很高?
基本上,在将我们的代码从 Session 转换为在 Azure Redis 上运行之后,我们的 Web Head 遇到了缓慢的问题(我们现在根据需要进行序列化和反序列化并存储在 Redis 缓存中),但整体性能很糟糕。
请求完成但可能需要一段时间,这是由于 Redis 的单线程性质吗?我们正在使用 Azure Redis 团队概述的配置作为最佳实践,如此处所述https://stackoverflow.com/a/28821220
我们还可以看看什么来帮助提高性能,因为当前的性能不能作为我们目前拥有的基于会话的实现(asp.net webforms/sql server/azure IaaS)的可行替代品。
PS - 序列化和反序列化确实会造成打击,我们知道 IIS 用它自己的用于非序列化数据集等的特殊内存池破坏了我们,但它不可能导致像它这样的页面加载增加 300-500%现在是给我们的。
想法赞赏!
@蒂姆·威曼
您的缓存对象有多大? 它们的大小可以不等,有一些数据集存储在 redis 中。
它们是什么类型的物体? 大多数对象是具有可变数量属性的自定义对象,有些甚至包含集合。
你用的是什么序列化器? 我们将 Newtonsoft 用于不需要 Rowstate 的任何内容,并将所需的二进制序列化程序用于需要行状态的数据集。
所有的序列化,以及后续的反序列化,都是在调用 redis 数据库 StringGet 或 StringSet 之前在代码中完成的。
azure - Azure Redis 缓存慢日志未记录任何内容
我正在尝试监视对 Azure 托管的 Redis 缓存的查询需要多长时间。似乎慢日志只记录我在远程访问时直接通过 Redis-cli 进行的查询,而不是当我的客户端应用程序对其进行任何查询时。我已将慢日志设置为记录比 0 慢的查询,因为我想记录所有查询,但这不起作用。
有什么建议么?
asp.net-mvc - 在 MVC 5 中为 ChildAction 使用 Azure Redis 缓存
我已经使用 Microsoft RedisOutputCacheProvider 成功实现了 Azure Redis 缓存,它对一般页面按预期工作。
但是,我似乎无法让它对子操作起作用,它总是使用默认的 OutputCacheProvider。
即使对于 ChildActions,我怎样才能让它工作?
asp.net - 在 asp.net 身份应用程序中更改会话状态模式后无法登录
我已经创建了asp.net 身份应用程序(oath & owin)并创建了一些注册用户,并且当我在 azure Web 应用程序服务上托管这个应用程序时,所以当我想将它从 1 个实例扩展到多个实例时,我需要更改 inproc 会话状态模式根据建议自定义或使用redis。
现存的
变成
虽然它已经针对指向的数据库创建了Sessions表,但是在那之后登录对任何用户都不起作用?!!!!!!为什么???
我也尝试用下面的redis提供程序替换它,但同样的问题