我试图找到一些遵循某种模式的 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 命令以引起重大性能问题而闻名,不应在生产中使用,除非可能在从属设备上使用。如果您使用 KEYS 会导致超时。但是,最终 SCAN 和 KEYS 都表明您没有以预期的方式使用 redis。您永远不会发现自己需要将这些命令用于常规操作。唯一应该经常使用它们的工具是管理/数据探索工具。理想情况下,他们应该针对奴隶,而不是主人。通常有其他方法可以做人们倾向于使用 SCAN 和 KEYS 的任何事情 - 例如,通过将特定组中的 key 存储在单个集合中(SADD 等)关于StackExchange.Redis 如何查询所有数据库键,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28620739/
10-13 07:32