【发布时间】:2016-02-22 08:10:16
【问题描述】:
我想用字符串模式搜索键。我认为 SCAN 不像 Keys 那样直接。
redistemplate.opsForSet().getOperations().keys(pattern);
这很简单,所以如果我有我的价值作为我的关键,我可以在一定程度上进行搜索和排序。但我唯一的问题是有一个警告说明不要使用 KEYS 命令。不确定 Spring 是否处理过,请提供您的想法。
【问题讨论】:
我想用字符串模式搜索键。我认为 SCAN 不像 Keys 那样直接。
redistemplate.opsForSet().getOperations().keys(pattern);
这很简单,所以如果我有我的价值作为我的关键,我可以在一定程度上进行搜索和排序。但我唯一的问题是有一个警告说明不要使用 KEYS 命令。不确定 Spring 是否处理过,请提供您的想法。
【问题讨论】:
您应该考虑将KEYS (http://redis.io/commands/keys) 视为调试命令。在你的开发实例上的 redis-cli 中运行它是非常好的,但不要在最终会在你的生产实例上结束的代码中使用它。
根据您的 redis 数据库的大小和KEYS 使用的模式,该命令可能需要很长时间才能执行。在此期间,redis 服务器将无法为任何其他命令提供服务。
SCAN 可能不那么直接,但它是在不降低服务器速度的情况下枚举键的正确方法。你会发现很多 Spring 的示例,比如这个:https://stackoverflow.com/a/30260108/3677188
【讨论】: