Azure Redis 缓存简单设置/获取

Posted

技术标签:

【中文标题】Azure Redis 缓存简单设置/获取【英文标题】:Azure Cache for Redis Simple Set / Get 【发布时间】:2022-01-10 06:56:36 【问题描述】:

我一直在寻找一个使用 C# 和 Azure Cache for Redis 的简单 get/set 示例。我使用默认设置设置 Azure Cache for Redis。我有各种访问密钥并遵循:

https://stackexchange.github.io/StackExchange.Redis/Basics.html

https://social.msdn.microsoft.com/Forums/vstudio/en-US/31866793-8064-4bce-a1e7-8bde3b793505/why-im-getting-exception-a-blocking-operation-was-interrupted-by-a-call-to-wsacancelblockingcall?forum=csharpgeneral

https://docs.microsoft.com/en-us/azure/azure-cache-for-redis/cache-overview

但我无法执行简单的 get/set。我已经安装了各种包管理器。我的代码如下:

using System;
using StackExchange.Redis;
using System.Configuration;
public class Redis

    IDatabase db;
    public Redis()
    
        ConnectionMultiplexer redis = "conn-string-here");
        this.db = redis.GetDatabase();
    

    public void Set(string key, object value)
    
        db.StringSet(key, value == null ? "" :  value.ToString());
    

    public string Get(string key)
    
        return db.StringGet(key);
    

但是,我不断收到此错误消息:

StackExchange.Redis.RedisConnectionException: 没有连接 活动/可用于服务此操作:SET my_first_test_key;一种 阻塞操作被 WSACancelBlockingCall 调用中断, mc:1/1/0,mgr:10 个中的 10 个可用,clientName:DESKTOP-78EDD5H,IOCP: (忙碌=6,空闲=994,最小=16,最大=1000),工人: (忙=1,空闲=8190,最小=16,最大=8191),v:2.2.88.56325 ---> StackExchange.Redis.RedisConnectionException:SocketFailure on ZyelRedis.redis.cache.windows.net:6380/订阅, Initializing/NotStarted, last: NONE, origin: ConnectedAsync, 未完成:0,上次读取:5 秒前,上次写入:5 秒前,保持活动状态: 60 秒,状态:正在连接,管理器:10 个可用,10 个可用,最后一次心跳: 从不,全球:0s 前,v:2.2.88.56325 ---> System.IO.IOException: 无法从传输连接读取数据:阻塞 操作被 WSACancelBlockingCall 调用中断。

【问题讨论】:

【参考方案1】:

仔细检查您的连接字符串。 Azure 中出现的可能不包含重要部分,即:sslprotocols=tls12

例子:

 ZyelRedis.redis.cache.windows.net:6380,
 password=k7e9OS5QzZ2XQPH9NktMiHCLpN3rTcMaPAzCaP3tnC0=,
 ssl=True,
 abortConnect=False,
 sslprotocols=tls12

 Requested: sslprotocols=tls12

【讨论】:

以上是关于Azure Redis 缓存简单设置/获取的主要内容,如果未能解决你的问题,请参考以下文章

为啥与 Azure Redis 缓存的连接如此之高?

Azure Redis缓存开发

Azure Redis 缓存使用注意事项与排查问题文档整理

Azure Redis缓存授权标头

使用 Azure Redis 缓存配置 Gitlab 时出错

Redis缓存雪崩就这么简单