问题标签 [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 - 启用 Azure Redis 缓存诊断
我正在尝试为 Azure Redis 缓存启用诊断。redis 和存储帐户都在同一区域(美国西部)。
根据这篇文章,它应该可以工作。
选择存储帐户后,我遇到了一般错误。知道如何进一步调查或在哪里报告吗?
c# - StackExchange.Redis 与 Azure:LockRelease 说锁已释放,但似乎没有
在我的绳索的最后一点:) 我有一个原型(太大,有太多的依赖关系无法共享),它出于多种原因使用 redis - 其中一个是存储序列化值,并控制更新到通过使用带有LockTake/Release
单独钥匙的防护锁来获得该值。
整个应用看起来有点像这样(注意:这个片段不能重现我的问题!):
我一直在本地使用一个简单的 redis 单个实例进行测试,从来没有遇到任何问题,现在我在另一个环境中尝试并一直在使用 Azure C0 Basic 实例。半可靠(我现在已经设法将我的代码库的本地副本设置为指向 Azure 实例)我可以重现问题 - 但不知道可能出了什么问题或如何进一步调试问题。
我观察到的行为是:
LockTakeAsync
工作正常- 我的“做事”位执行正常
LockReleaseAsync
似乎成功(返回 TRUE),但未从 redis 中删除锁定键(使用 cmdline redis-cli 工具确认)。
我试过了:
- 使用追踪
ConnectionMultiplexer
- 没有任何不愉快的事情出现 - 将我的应用程序缩减为一个简单的测试用例(见上文) - 但这不会重现问题,所以它必须是外部的
LockTake/LockRelease
切换到调用的非异步版本- 问题仍然存在- 添加了围绕
LockReleaseAsync
调用的日志记录(包括SET
对 redis 的“DEBUG”调用以跟踪 - 见下文)以确认事件的确切顺序 - 在上面的代码片段中添加了
LockQueryAsync
调用以确认锁仍然被持有! - 指定我的所有命令都应在主副本上执行。
唯一能MONITOR
在 redis 实例上运行并捕获 SE.Redis 正在做什么的痕迹。当它在本地执行并且应用程序正常工作时,我会得到类似(键名已更改):
当我针对 Azure 运行并重新创建问题时,我得到:
对我来说,看起来好像WATCH
失败了(是否涉及 Azure 中的复制?)并且发布失败。SE.Redis似乎DEL
没有发出命令(没关系)。MULTI/EXEC
但是LockReleaseAsync
没有报告这一点 - 我也无法在 MONITOR 日志中看到影响相关密钥的呼叫。
难住了。
关于如何进一步隔离它的任何想法?尝试构建一个小测试用例不会很快。
干杯!
azure - 使用 Redlocks 获取 Azure Redis 缓存上的锁定
我有一个 Azure Redis 缓存,并且多个客户端正在使用它。缓存中的共享资源(键)很少需要互斥。我正在使用这里提出的 redlock 算法。
我的要求是每个客户端都需要以互斥的方式访问共享资源。如果客户端无法获取资源锁,那么它应该以 30 秒的间隔不断尝试获取锁,直到它获取它。为了防止死锁,万一进程崩溃,锁应该在 5 分钟后过期。
我已经从github检查了 redock.net 的文档,但我不确定如何正确使用 retry、wait 和 expiry 参数来达到上述标准。任何人都可以指导我朝那个方向发展吗?或者是否有其他详细的文档可用?
代码是用 .NET 编写的,所以我使用的是 StackExchange.Redis 和 Redlock.net
azure - 如何将 Azure Redis 缓存从标准缩减为基本?
我正在尝试缩减 Azure 上的 Redis 缓存,但收到错误消息,提示“标准计划无法更改为基本计划”。
有人知道在不创建新的 Redis 缓存的情况下改变它的方法吗?
azure - 获取 Microsoft Azure 中 Redis 缓存和应用服务的操作执行信息
我在 Azure 中有一个存储帐户,我已为其启用了 Blob 和表服务日志的诊断监视。查看这些日志可以为我提供有关在存储帐户上执行的操作的信息 - 例如 ListBlobs、GetBlobs 以及这些操作是否成功。
Redis Cache 和 App Service 可以获取类似的信息吗?如果是,我如何找到日志条目?
redis - 如何避免 Redis LockRelease 调用超时
当我尝试释放 redis 锁时,我一直收到以下超时异常。我将 Azure Redis 与 StackExchange.Redis 版本 1.1.603 一起使用。我得到的例外如下。我查看了异常错误中包含的链接,但没有看到与此场景相关的任何内容。
代码基本上如下所示。Redis 调用被包装以使最终编写单元测试更容易。
此代码是从 ASP.NET 5 RC1 WebAPI 调用的。如果我在 Azure 或本地运行它,我会超时。但是,我有一个简单的 XUnit 集成测试,该测试使用相同的代码,并且它针对同一个 Azure 托管的 Redis 缓存毫无例外地运行。可能与 ASP.NET 5 RC1 和 StackExchange.Redis 版本 1.1.603 不兼容吗?奇怪的是,这个问题一直在 WebAPI 中发生。无论如何,它都不是间歇性的。此外,它总是使用集成测试成功,所以感觉这里还有其他事情,超时只是一个红鲱鱼。
azure - Azure 云服务和应用服务指标
Redis 缓存的指标日志可以使用诊断记录到存储帐户。同样,云服务和应用服务的指标日志存储在哪里?
java - Azure Redis SSL 集群 + 生菜 Java(编辑:生菜版本 < 4.2)
我需要使用带有密码、SSL 和流水线支持的 Azure Redis 集群。
到目前为止,我一直在使用 Jedis,但它缺乏对集群+ssl+密码+流水线组合的支持。
我尝试了生菜(https://github.com/mp911de/lettuce/releases/tag/4.1.2.Final),目前遇到了我自己无法解决的连接问题。
连接到 Azure Redis 集群 (2 * P4) 可以在没有 SSL 的情况下工作,但不能。我也可以使用 SSL 连接到单个节点,但没有集群支持。问题是当组合 cluster+ssl 时,auth 调用超时(命令通过线路发送但超时)。
没有 SSL 工作代码的集群如下所示:
输出是1
启用 SSL:
它在 1 分钟内挂起,log4j 日志如下所示:
保持 SSL 和禁用集群有效:
所以这不仅仅是一个 SSL 问题,它是一个 SSL + 集群组合问题。我尝试使用withStartTls
,禁用对等验证,提高超时,任何没有运气的组合。
知道它是库错误还是 Azure Redis 错误?
azure - Azure Redis 缓存突然空了?
我有一个 Azure Redis 缓存,我一直在愉快地使用它,但突然间它把所有东西都炸毁了,而且是空的。有谁之前经历过这个吗?
作为设置的概述:
基本 1GB 层。
那里最旧的数据是 2 天前。最大内存策略 =volatile-lru
数据持久性 = N/A 由于包级别
我可以将数据重新添加回空缓存中,但我不明白以前的数据可能去了哪里?
这是否可以归结为一个简单的服务器端打嗝导致数据丢失?
dotnetnuke - 如何让我的 DNN Azure 网站使用 Redis 缓存?
我已经通过 Webmatrix3 使用 azure sql 数据库成功地将我的 DNN 网站部署到 azure。
我创建了一个 azure redis 缓存来尝试提高性能。
我进行了搜索和搜索,但没有找到有关如何连接网站以使用缓存的文档。我是否必须以某种方式将它集成到 WebMatrix 中并重新发布?
发现这个通过 Visual Studio 集成 ASP.NET 应用程序:MSFT 文档
我可以使用我在 DNN web.config 中找到的相同 appSettings 行,将我新创建的 azure redis 缓存值放置为“key”和“value”吗?