Jua*_*anK 3 stackexchange.redis
我正在尝试找到一些遵循模式的键,但我需要所有相关的键,而不仅仅是特定服务器中的键.
到目前为止,我正在尝试使用文档示例访问特定服务器,但它不起作用.
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);
Run Code Online (Sandbox Code Playgroud)
由于超时,最后一行总是失败:S
我会感激任何帮助.
首先,你使用的是redis服务器版本?可用的服务器命令因服务器而异,并且在2.8之前的版本上KEYS
必须使用该SCAN
命令而不是命令.KEYS
众所周知,该命令会导致严重的性能问题,并且永远不应该在生产中使用,除非是奴隶.如果你使用<2.8,是的,我希望KEYS
会导致超时.
但是,最终两者SCAN
并KEYS
建议您不要以预期的方式使用redis.您不应该发现自己需要将这些命令用于常规操作.常规应该使用它们的唯一工具是管理/数据探索工具.理想情况下,他们应该以奴隶为目标,而不是主人.
通常有替代办法做任何事情,人们往往希望SCAN
和KEYS
对-例如,通过在特定的群组存储在一组键(SADD
等)
归档时间: |
|
查看次数: |
3173 次 |
最近记录: |