我已经使用StackService.Redis中的IRedisClient尝试了以下带有和不带有'*'通配符的代码。它不会像我预期的那样返回与模式匹配的键列表。我正在尝试搜索包含存储在searchPattern变量中的值的任何键,但没有返回任何结果。如果我遗漏了什么,请告诉我。
using var cache = BuildClient();
cacheKeyList = cache.ScanAllKeys($"*{searchPattern}*").Skip(skip).Take(take).ToList();
提供给该方法的ScanAllKeys
模式是匹配键的模式,而不是键持有的值。
例如,如果存储模式为users:{id}
的密钥,其中{id}
替换为用户的ID,例如users:1
,则扫描users:*
将返回与存储的用户匹配的所有密钥。
在这个方法的下面是调用Redis SCAN命令,更多信息可以在他们的文档中找到。