使用Sadd操作添加后如何检索Redis集的所有键

时间:2018-10-04 11:41:01

标签: 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 适用于哈希,因此在这种情况下没有用。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

KEYS mykeys_*将返回与该模式匹配的键。

请注意doc page for KEYS上的警告:

  

警告:将KEYS视为仅应在   极其谨慎的生产环境。可能会破坏性能   针对大型数据库执行时。该命令旨在   用于调试和特殊操作,例如更改密钥空间   布局。不要在常规应用程序代码中使用KEYS。如果你是   寻找一种在键空间的子集中查找键的方法,请考虑   使用扫描或集。