gpt4 book ai didi

c# - 无法使用 Stackexchange Redis 从 .Net 调用带有模式的 HSCAN

转载 作者:可可西里 更新时间:2023-11-01 10:57:39 24 4
gpt4 key购买 nike

我正在尝试在 Redis 中运行 HSCAN 命令以仅匹配通过 C# 需要的哈希字段

代码是这样的

var options = new ConfigurationOptions
{
EndPoints = { "endpoint" },
Proxy = Proxy.Twemproxy
};
twemproxy_new = ConnectionMultiplexer.Connect(options);
db = twemproxy_new.GetDatabase();
Dictionary<string,string> inputDict = new Dictionary<string, string>();
// populate inputDict with "n" fields & values
var cachekey = "my_hash";
db.GetDatabase().HashSet(cachekey, inputDict, CommandFlags.FireAndForget);

db.HashScan(cacheKey, "*9*");
// this is where it fails with the exception
// Command is not available on your server: HSCAN

但是当我在 twemproxy 服务器上运行 HSCAN 命令时,它似乎按预期工作

HSCAN cache_Key 0 MATCH *pattern*

我错过了什么?

谢谢

最佳答案

我在运行 Redis on windows 时遇到同样的问题,我认为这是因为当您运行 beta 版本时,StackExchange.Redis 库无法解析服务器返回的 Redis 版本,因此它假定较低版本的 Redis 不包含HSCAN 命令。

在我的例子中,服务器返回以下字符串作为 Redis 版本:

3.0.300-beta1

当 SE.Redis 尝试解析版本字符串 (ResultProcessor.cs) 时:

Version version;
if (Version.TryParse(val, out version))
{
server.Version = version;
server.Multiplexer.Trace("Auto-configured version: " + version);
}

将无法解析版本号,因为版本字符串的 -beta1 部分,参数应具有以下格式,如 MSDN 中所述:

ma​​jor.minor[.build[.revision]]

尝试运行非测试版的 redis。

我刚刚打开了一个 issue关于这个在 SE.Redis github 上。

关于c# - 无法使用 Stackexchange Redis 从 .Net 调用带有模式的 HSCAN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38667607/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com