在Redis缓存中,我有三把钥匙
1111-2222-4444 1111-2222-3333 1112-2222-3333
我有一个部分键1111,我想返回两个键1111-2222-4444,1111-2222-3333
我有以下代码
public List<String> getKeys(String partialkey) {
ScanParams scanParams = new ScanParams();
scanParams.match("*");
String cur = redis.clients.jedis.ScanParams.SCAN_POINTER_START;
Jedis jedis = jedisPool.getResource();
List<String> keys = new ArrayList<String>();
boolean cycleIsFinished = false;
while (!cycleIsFinished) {
ScanResult<String> scanResult = jedis.scan(cur, scanParams);
cur = scanResult.getCursor();
for(String key :scanResult.getResult()) {
if(isKey(key, partialkey) ) {
keys.add(key);
}
}
if (cur.equals("0")) {
cycleIsFinished = true;
}
}
return keys;
}
以及匹配部分密钥的方法
private boolean isKey(String key, String match) {
String[] fields = key.split("-");
if(match.equals(fields[0])) {
return true;
}
return false;
}
现在这个工作,但它看起来很笨重,可能有成千上万的键,通过搜索。我的问题是,有没有一种纯粹的redis方法来做到这一点。其中它只返回部分键匹配的两个键。
感谢shmosel
public List<String> getKeys(String partialkey) {
ScanParams scanParams = new ScanParams();
scanParams.match(partialkey+"-*");
String cur = redis.clients.jedis.ScanParams.SCAN_POINTER_START;
Jedis jedis = jedisPool.getResource();
List<String> keys = new ArrayList<String>();
boolean cycleIsFinished = false;
while (!cycleIsFinished) {
ScanResult<String> scanResult = jedis.scan(cur, scanParams);
cur = scanResult.getCursor();
for(String key :scanResult.getResult()) {
//if(isKey(key, partialkey) ) {
keys.add(key);
//}
}
if (cur.equals("0")) {
cycleIsFinished = true;
}
}
return keys;
}
问题内容: 在Go中,有没有更简单/更巧妙的方法从地图中获取键的片段? 目前,我正在遍历地图并将键复制到一个切片: 问题答案: 例如, 为了在Go中高效运行,最小化内存分配非常重要。
我正在研究使用Hibernate 4.1.9注释地图的不同方法 如果我想存储一个Map,其中键是实体值的属性,标记如下所示 请注意,上面的标记不会创建连接表,而是在运行时通过查询返回Map,因此Map是动态的,您不必在map中添加元素Java查询返回它们。 现在,我希望地图的内容反映应用程序添加到地图中的内容,而不是执行动态查询。 我想储存4种不同的地图 在这些情况下,键之间没有关系 我尝试了以下
Targets key To be discussed in order to avoid _Warning: potential malicious behavior - trust data has insufficient signatures for remote repository .dkr.ecr.us-east-1.amazonaws.com/app: valid signatur
Snapshot key To rotate the snapshot key: ❯ notary -D -v -s https://127.0.0.1:4443 -d ~/.docker/trust key rotate <aws_account_id>.dkr.ecr.us-east-1.amazonaws.com/app snapshot -r Enter passphrase for ne
根据我的理解,使用JOhm和Jedis,可以在Redis中存储/检索java类对象。我有一个问题是,JOhm是否也将java对象保存在内存中,以便下次需要该对象(与key相关联)时,从内存返回该对象,而不是每次都从Redis读取该对象?
我为数据可视化工具开发了一个插件。现在我想在它里面使用redis。当我在另一个项目(不在我的插件中)中尝试下面的redis代码时,效果很好。 但当我在插件中使用绝地武士时,我得到了由java引起的和错误。为了把我的插件安装到这个数据可视化工具上。我需要创建一个jar文件,我这样做了,它在不添加jedit部分的情况下运行良好。 我正在使用IntelliJ Idea,我创建了一个工件,并从顶部菜单中的