标签: azure-redis-cache

使用Redlocks获取Azure Redis缓存上的锁定

我有一个Azure Redis缓存,多个客户端正在使用它.缓存中的共享资源(密钥)很少需要互斥.我正在使用这里提出的redlock算法.

我的要求是每个客户端都需要以互斥的方式访问共享资源.如果客户端无法获取资源上的锁定,那么它应该以30秒的间隔继续尝试获取锁定,直到获取它为止.为防止死锁,如果进程崩溃,锁定应在5分钟后过期.

我从github检查了redock.net的文档,但我不确定如何正确使用重试,等待和到期参数来达到上述标准.任何人都可以指导我这个方向吗?或者是否有其他详细的文件?

代码是用.NET编写的,所以我使用的是StackExchange.Redis和Redlock.net

azure redis stackexchange.redis azure-redis-cache

2
推荐指数
1
解决办法
1060
查看次数

Azure Redis缓存-多个错误TimeoutException:执行GET {key}的超时

我们将应用程序部署到Azure。它正在使用Azure Redis缓存,并且我们遇到了很多超时。即:

[TimeoutException: Timeout performing GET textobjectDetails__23290_TextObject, inst: 1, mgr: Inactive, queue: 5, qu=0, qs=5, qc=0, wr=0/0, in=56864/0]

[TimeoutException: Timeout performing GET featured_series_CachedSeries, inst: 1, mgr: Inactive, queue: 4, qu=0, qs=4, qc=0, wr=0/0, in=44470/0]

[TimeoutException: Timeout performing GET SeriesByFranchiseId_1_CachedSeries, inst: 1, mgr: Inactive, queue: 3, qu=0, qs=3, qc=0, wr=0/0, in=11252/0]

[TimeoutException: Timeout performing GET media_silo-1-1-0_Media, inst: 1, mgr: Inactive, queue: 3, qu=0, qs=3, qc=0, wr=0/0, in=15188/0]

[TimeoutException: Timeout performing GET textobjectDetails__3092_TextObject, inst: 3, mgr: Inactive, queue: 7, qu=0, qs=7, qc=0, …
Run Code Online (Sandbox Code Playgroud)

caching azure redis stackexchange.redis azure-redis-cache

1
推荐指数
1
解决办法
4123
查看次数

Azure Redis - 如何延长每次访问密钥时的过期时间?

密钥:名字 值:samurai 有效期:6 小时

 public static bool Add<T>(this IDatabase cache, string key, T value, TimeSpan? expiry = null)
        {
            dynamic response;
           
                response = cache.StringSet(key, JsonConvert.SerializeObject(value, jsonSettings), expiry, flags: CommandFlags.DemandMaster);
            }
          
            return response;
        }
Run Code Online (Sandbox Code Playgroud)

假设此时 TTL 为 10 分钟。IE。已过去 5 小时 50 分钟,10 分钟后密钥将被删除。但是如果有人对这个key进行get操作。到期时间应再次重置为 6 小时。

一种简单的方法是再次执行cache.StringSet。但恐怕这可能会降低重负载测试下的性能。还有其他选择吗?

c# caching redis azure-redis-cache

1
推荐指数
1
解决办法
2085
查看次数

Azure Redis 是否通过 http 工作?

Azure Redis 是否支持通过 http 传输。我知道允许我选择是否启用 SSL 的设置。但在我看来,与 Azure Redis 的连接是通过 TCP 进行的。

“每个 Redis 集群节点都需要打开两个 TCP 连接。用于为客户端提供服务的普通 Redis TCP 端口,例如 6379,加上通过在数据端口上添加 10000 获得的端口,因此示例中为 16379。”

我也在微软论坛上发布了这个问题。在这里能找到它。

stackexchange.redis azure-redis-cache

0
推荐指数
1
解决办法
1242
查看次数