发布于 

RedisTemplate根据hash类型中的item模糊查询,然后删除

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
  /**
* 根据hash中的item模糊删除 key的item
* @param key key
* @param item item
*/
public static void hRemoveDim(String key, String item){

ArrayList<String> items = new ArrayList<>();
// 模糊查询出准确的item
redisTemplate.execute(new RedisCallback() {
@Override
public Object doInRedis(RedisConnection connection) throws DataAccessException {
Cursor<Map.Entry<byte[], byte[]>> entryCursor = connection.hScan(key.getBytes(), ScanOptions.scanOptions().match("*" + item + "*").count(1000).build());
while(entryCursor.hasNext()){
Map.Entry<byte[], byte[]> next = entryCursor.next();
String key = new String(next.getKey());
// 将查询出的item放入list
items.add(key);
}
connection.close();
return null;
}
});
// 批量删除对应key中的item
redisTemplate.opsForHash().delete(key, item)
}

本站由 @binvv 使用 Stellar 主题创建。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。