redis模糊查询redis中的key

news/2024/10/11 11:21:54/

redisrediskey_0">redis模糊查询redis中的key

方式一:使用keys命令

java">/*** 查找匹配的key** @param pattern* @return*/
public Set<String> keys(String pattern) {return redisTemplate.keys(pattern);
}

方式二:使用san命令

java">/*** 查找匹配的key** @param pattern* @return*/
public List<String> scanKeysByPattern(String pattern) {ScanOptions options = ScanOptions.scanOptions().match(pattern).build();Cursor<String> cursor = redisTemplate.scan(options);List<String> matchedKeys = new ArrayList<>();while (cursor.hasNext()) {String key = cursor.next();matchedKeys.add(key);}return matchedKeys;
}

redis里,允许模糊查询key
有3个通配符 *, ? ,[]
*: 通配任意多个字符
?: 通配单个字符
[]: 通配括号内的某1个字符

测试效率

java">@GetMapping("/matchKeys")
public Object matchKeys(@RequestParam String keyPrefix) {StopWatch stopWatch = new StopWatch();String keyPattern = keyPrefix + "*";stopWatch.start("--keys--");Set<String> keys = redisUtil.keys(keyPattern);stopWatch.stop();System.out.println("----keys------keys.size=" + keys.size() + "----耗时= " + stopWatch.getLastTaskTimeMillis());stopWatch.start("--scan--");List<String> keys1 = redisUtil.scanKeysByPattern(keyPattern);stopWatch.stop();System.out.println("----scan----keys.size=" + keys1.size() + "----耗时= " + stopWatch.getLastTaskTimeMillis());System.out.println("stopWatch.prettyPrint() = " + stopWatch.prettyPrint());Map<String, Object> resMap = new HashMap<>();resMap.put("size", keys.size());resMap.put("taskTime", stopWatch.getLastTaskTimeMillis());return resMap;
}

虽然KEYS命令可以用来实现模糊查询Key的功能,但需要注意以下几点:

KEYS命令将在整个Redis数据库中执行查询操作,如果数据库中的Key数量庞大,查询的性能可能会受到影响。
在生产环境中,如果需要频繁进行模糊查询,建议使用Redis的有序集合(Sorted Set)来维护索引,以提高查询效率。

参考

redis怎么模糊查询key
redis通用key操作命令(总)(模糊查询)


http://www.ppmy.cn/news/1443488.html

相关文章

SpringMVC(SSM框架)

目录 一、MVC模式 二、获取请求参数 1. 通过HttpServletRequest获取 2. 通过方法参数获取 3. 通过PathVariable获取 4. 通过ModelAttributes获取 5. 使用RequestBody获取请求体 三、处理响应 四、异常处理 1. 使用ExceptionHandler注解 2. 使用ControllerAdvice和Re…

pyCharm导入pyspark中的sparkconf和sparkcontext错误

背景&#xff1a;学习黑马程序员python课程的pyspark实战部分时按照下图导入pysark包时发现sparkconf和sparkcontext无法导入和运行。 首先想到是不是在CMD窗口下载的pySpark路径及安装是否正确&#xff1f; 通过下图发现第三方库都安装正确&#xff0c;然后就考虑库的路径&a…

【python项目推荐】键盘监控--统计打字频率

原文&#xff1a;https://greptime.com/blogs/2024-03-19-keyboard-monitoring 代码&#xff1a;https://github.com/GreptimeTeam/demo-scene/tree/main/keyboard-monitor 项目简介 该项目实现了打字频率统计及可视化功能。 主要使用的库 pynput&#xff1a;允许您控制和监…

python代码实现kmeans对鸢尾花聚类

导入第三方库和模型 from sklearn import datasets import numpy as np import matplotlib.pyplot as plt from sklearn.cluster import KMeans2、创建画图函数 def draw_result(train_x, labels, cents, title):n_clusters np.unique(labels).shape[0]#获取类别个数color …

通过Linux命令查看GPU使用情况以及各种参数解释

查看Linux服务器GPU使用情况&#xff0c;以及各种参数解释 查看GPU使用情况参数解释 查看GPU使用情况 静态查看命令 只能看当前这一时刻gpu的各项数据 nvidia-smi动态查看命令 顾名思义&#xff0c;可以实时监测gpu的各项数据。 watch -n 1 nvidia-smi参数解释 解释相关参…

Apollo共创生态:共筑未来智能出行新篇章

目录 引言Apollo七周年大会回顾心路历程企业生态计划 个人心得与启发技术革新的引领者展望 结语 引言 在科技飞速发展的今天&#xff0c;智能出行已经成为全球关注的焦点。Apollo开放平台&#xff0c;作为智能出行领域的先行者&#xff0c;已经走过了七个春秋。七年磨一剑&…

STM32_舵机的实战

一、配置相应的管脚 二、写代码

ai智能机器人语音后端识别处理呼叫系统部署

人工智能是推动科技跨越发展、产业优化升级、生产力整体跃升的重要战略资源。随着一系列支持人工智能发展政策的相继落地&#xff0c;相关产业的创新活力也被日益激发&#xff0c;推动现有商业体系内各个产业加速变革。在人工智能领域&#xff0c;电话机器人落地的速度也在加快…