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 缓存简单设置/获取的主要内容,如果未能解决你的问题,请参考以下文章