redis - 使用sadd操作添加后如何检索Redis集合的所有键
问题描述
我正在使用 RedisCluster 访问信息。这是我的代码:
package kafka;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisCluster;
import redis.clients.jedis.ScanParams;
import redis.clients.jedis.ScanResult;
public class RedisExample {
public static void main(String[] args) {
JedisCluster connection = JedisConnection.getInstance().getconnection();
connection.sadd("mykeys_key1", "attr1:string");
connection.sadd("mykeys_key1", "attr2:string");
connection.sadd("mykeys_key2", "attr1:string");
connection.sadd("mykeys_key2", "attr2:string");
connection.sadd("mykeys_key3", "attr1:string");
connection.sadd("mykeys_key3", "attr2:string");
System.out.println(connection.smembers("mykeys_key1"));
}
}
输出:[attr2:string, attr1:string]
我想检索与模式匹配的所有键**mykeys_***
。
我正在寻找类似的东西:
connection.smembers("mykeys_*") ---
这应该给我所有的钥匙,即mykeys_key3, mykeys_key2, mykeys_key1
.
根据这些键,我将再次调用Redis connection.smember("mykeys_key3")
以获取个人设置。
hkeys适用于散列,因此在这种情况下没有用。任何帮助将不胜感激。
解决方案
KEYS mykeys_*
将返回与该模式匹配的键。
注意KEYS 文档页面上的警告:
警告:将 KEYS 视为仅应极其小心地在生产环境中使用的命令。当它针对大型数据库执行时,它可能会破坏性能。此命令用于调试和特殊操作,例如更改键空间布局。不要在常规应用程序代码中使用 KEYS。如果您正在寻找一种在键空间子集中查找键的方法,请考虑使用 SCAN 或集合。
推荐阅读
- json - 无法使用警报将 tradingview webhook 消息发送到不和谐
- python - 将 PyTorch U-Net 模型减少到不到一半的参数显示几乎没有内存减少
- r - 如何使用 tidyverse 的 mutate 函数通过自定义函数创建多个列
- parallel-processing - 具有并行工具箱的 Matlab 独立应用程序(已部署应用程序中的 parfor 循环)
- swift - 如何处理来自`photoOutput(_:didFinishProcessingPhoto:error:)`的错误
- multithreading - Web 服务器上的用户线程实现:有限状态机如何处理中断以避免竞争条件
- jenkins - Jenkins 构建状态 NOT_BUILT 即使所有阶段都是绿色的
- python-3.x - Python:如何将包含字典的列表从文本文件读取到列表对象
- python - 错误绑定参数 0 - 使用 connection.executemany() 时可能不支持的类型
- ios - SwiftUI 自定义选取器标签未呈现