首页 > 数据库 >redis 查找模糊key [scanKeys]

redis 查找模糊key [scanKeys]

时间:2022-12-16 11:45:12浏览次数:37  
标签:count pattern scanKeys redis cursor 查找 key options

/**
* 以count为步长查找符合pattern条件的keys * * @param redisTemplate 指定redis * @param pattern 匹配条件 * @param count 一次在count条记录中match符合pattern条件的记录。若count<=0,使用1000 * @return Set<String> 若limit<= 0,返回所有;否则返回查找结果
*/
public Set<String> scanKeys(String pattern, int count) {
log.info("pattern:{}, count:{}", pattern, count);
return redisTemplate.execute(new RedisCallback<Set<String>>() {
@Override
public Set<String> doInRedis(RedisConnection connection) throws DataAccessException {
Set<String> tmpKeys = new HashSet<>();
ScanOptions options;
if (count <= 0) {
options = ScanOptions.scanOptions().match(pattern).count(1000).build();
} else {
options = ScanOptions.scanOptions().match(pattern).count(count).build();
}
// 迭代一直查找,直到找到redis中所有满足条件的key为止(cursor变为0为止)
Cursor<byte[]> cursor = connection.scan(options);
while (cursor.hasNext()) {
tmpKeys.add(new String(cursor.next()));
}
return tmpKeys;
}
});
}

标签:count,pattern,scanKeys,redis,cursor,查找,key,options
From: https://www.cnblogs.com/austinspark-jessylu/p/16986928.html

相关文章

  • python 操作redis有序集合
      https://feeler.blog.csdn.net/article/details/103100452?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogComme......
  • 使用 System.Text.Json 时,如何处理 Dictionary 中 Key 为自定义类型的问题
    在使用System.Text.Json进行JSON序列化和反序列化操作时,我们会遇到一个问题:如何处理字典中的Key为自定义类型的问题。背景说明例如,我们有如下代码: //定义一个......
  • Chapter 10.利用Redis Zset实现双维度排行榜
    欢迎来到「我是真的狗杂谈世界」,关注不迷路背景最近需要将遇到的几个排行需求点抽出来做一个独立的通用排行组件,整理记录一下。核心需求能获得连续的部分的榜单:比如......
  • Linux系统启动redis(不是docker安装的redis)
    Linux系统启动redis(不是docker安装的redis)linux安装redis相关命令一、查看redis是否启动:ps-aux|grepredis二、查找redis安装目录whereisredisredis:/usr/loca......
  • 解决ORM错误:django.db.utils.IntegrityError: (1452, 'Cannot add or update a child
    #修改settings.pyDATABASES={'default':{'ENGINE':'django.db.backends.mysql','NAME':'test','HOST':'127.0.0.1','POR......
  • Redis原理(四):内存回收
    过期策略过期策略-DB结构Redis本身是一个典型的key-value内存存储数据库,因此所有的key、value都保存在之前学习过的Dict结构中。不过在其database结构体中,有两个Dict:一......
  • Redis原理(三): 网络模型
    用户空间和内核空间任何Linux发行版,其系统内核都是Linux。我们的应用都需要通过Linux内核与硬件交互,为了避免用户应用导致冲突甚至内核崩溃,用户应用与内核是分离的:......
  • Centos安装Redis
    1、下载安装包快速下载:wgethttp://download.redis.io/releases/redis-5.0.8.tar.gz中文官网下载:http://download.redis.io/releases/redis-6.0.6.tar.gz官网地址:https:......
  • redis安装
    目录一、下载redis客户端二、解压redis压缩包三、设置redis密码  四、启动redis服务端  五、启动redis客户端  六、测试   ......
  • 【Monkey】Monkey命令与使用
    Monkey通过Monkey程序模拟用户触摸屏幕、滑动Trackball、按键等操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常,Monkey主要用于Android的压力测试 自......