gpt4 book ai didi

StackExchange.Redis如何查询所有的db Keys

转载 作者:行者123 更新时间:2023-12-01 11:34:36 29 4
gpt4 key购买 nike

我试图找到一些遵循某种模式的 key ,但我需要所有相关的 key ,而不仅仅是特定服务器中的 key 。

到目前为止,我一直在尝试使用文档示例访问特定服务器,但它不起作用。

        var connection = ConnectionMultiplexer.Connect(new ConfigurationOptions
{
EndPoints = { { DemoSettings.CustomerRedisCache.Url, DemoSettings.CustomerRedisCache.Port } },
Password = DemoSettings.CustomerRedisCache.Password
});

var server = connection.GetServer(host: DemoSettings.CustomerRedisCache.Url,
port: DemoSettings.CustomerRedisCache.Port);
var cadena = "cust:" + data.SearchString.Replace(' ', ':')+"*";
var valores = server.Keys(pattern: cadena);

最后一行总是因为超时而失败 :S

我将不胜感激。

最佳答案

首先,您使用的是什么版本的 redis 服务器?可用的服务器命令因服务器而异,在 2.8 之前的版本中,必须使用 KEYS 命令而不是 SCAN 命令。 KEYS 命令以导致重大性能问题而闻名,不应在生产中使用,除非可能在从属设备上使用。如果您使用的是 < 2.8,是的,我希望 KEYS 会导致超时。

但是,最终 SCANKEYS 都表明您没有按预期方式使用 Redis。您永远不会发现自己需要使用这些命令进行常规操作。 应该经常使用它们的唯一工具是管理/数据探索工具。理想情况下,他们应该针对奴隶,而不是主人。

通常有替代方法可以做任何人们倾向于使用 SCANKEYS 的事情 - 例如,通过将特定组中的 key 存储在一个集合中(SADD 等)

关于StackExchange.Redis如何查询所有的db Keys,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28620739/

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