Jedis scan及其count的值
之前在做统计相关功能的时候,使用到了redis的keys,但是,跑了一段时间后,被运维的慢查询给抓出来了,说这个太慢了,需要10ms(平常的命令只需要2-3ms),并且keys会造成阻塞,影响其他进程。。。
好吧,那就改成scan。本来是是想拿百度现成的来用,但是,居然没有搜索到!amazing!好吧,那就只能扒官方了。
1.官网
首先找到Spring Data Redis官网,然后进入API链接,
2.Scan
然后,
3.ScanOptions---->Scan方法的参数
这里可以看到,scan方法,需要一个scanOptions参数,点进scanOptions类,发现scanOptons有个静态内部类--scanOptionsBuilder
4.scanOptionsBuilder--->构造ScanOptions
scanOptionsBuilder类,又有count、match、build三个方法。看描述,match是充当匹配的作用,count是返回匹配到的数目,build是scanOptionsBuilder转换为scanOptions对象
看了这么多,其实转换为代码,就一行而已
ScanOptions options = ScanOptions.scanOptions().match(workQKey).count(Integer.MAX_VALUE).build();
Cursor c = redisConnection.scan(options);
while (c.hasNext()) {
logger.info(new String((byte[]) c.next()));
}
5.scanOptionsBuilder的count参数
测试了一番,和keys的效果是一致的。but,count的参数为什么是Integer.MAX_VALUE呢?我尝试了下,把Integer.MAX_VALUE改成了100(需要统计的key有122个),然后,就飙红了
但是,你把count从100改成大于等于122,那就正常运行。按这规律,是count的参数必须不小于实际数量?我也在stackoverflow看到一篇帖子,说的貌似也是要这样解决。。
Jedis scan及其count的值相关推荐
- Oracle sql 对多个sql count的值再求和
最近写需求,第一次遇到对多个sql count的值再进行求和,赶紧做个笔记~ 对多个sql count的值再求和: select count(1) countnum from user c where ...
- 如何理解count=count++,count的值不变
能进来的朋友肯定跟我一样对于count = count++的结果很不解,希望看完你有收获. 先看一段代码 public class CountTest {public static void main ...
- mysql count 返回值_COUNT(*)总是返回结果吗?
是的,"count"函数本身的返回值始终是非null整数,无例外. 话虽如此,您可能对查询的返回值更感兴趣,这实际上是一个结果集.如果是这种情况,那么您只需要考虑您的查询是否包含& ...
- jedis中scan的实现
我的版本说明: redis服务端版本:redis_version:2.8.19 jedis: <dependency> <groupId>redis.clients</g ...
- 如何修改Series和DataFrame类型中的元素值_Redis的HSCAN命令中COUNT参数的失效场景
前提 ❝ 这是一篇Redis命令使用不当的踩坑经历分享 ❞ 笔者最近在做一个项目时候使用Redis存放客户端展示的订单列表,列表需要进行分页.由于笔者先前对Redis的各种数据类型的使用场景并不是十分 ...
- Redis命令:scan实现模糊查询
1.scan前言 从Redis v2.8开始,SCAN命令已经可用,它允许使用游标从keyspace中检索键. 对比KEYS命令,虽然SCAN无法一次性返回所有匹配结果,但是却规避了阻塞系统这个高风险 ...
- Redis - 使用scan代替keys与hgetall操作
1.scan前言 当我们使用 keys * 或 hgetall 进行查询的时候会进行堵塞,导致 redis 整体不可用(因为redis是单线程的),而使用 scan 命令则不会. 从Redis v2. ...
- redis 用scan 代替keys,hgetAll
转载自:https://blog.csdn.net/w05980598/article/details/80264568 众所周知,当redis中key数量越大,keys 命令执行越慢,而且最重要的会 ...
- redis sscan java_redis 用scan 代替keys,hgetAll
转载自:https://blog.csdn.net/w05980598/article/details/80264568 众所周知,当redis中key数量越大,keys 命令执行越慢,而且最重要的会 ...
- Redis客户端之Jedis(Key、String、Set、List、pub/sub、cluster、pool、pipleline)
原文链接:http://blog.csdn.net/xyang81/article/details/51918129 环境: OS:CentOS7 64位 server版本:Redis 3.2.0 c ...
最新文章
- 今晚8点直播 | 双11的背后除了阿里还有顺丰,智慧物流是如何利用深度学习赋能的?...
- ICML 2018 | 清华排名国内居首:大会论文接收情况一览
- 【字符串】最长回文子串 ( 蛮力算法 )
- 360怎么看电脑配置_Win10系统自带杀毒和垃圾清理好么?需不需要安装360卫士
- ACL 2021 | 为什么机器阅读理解模型会学习走捷径?
- 强连通分量(Strongly_Connected_Components)
- 十大技巧优化Android App性能
- python变量持久化_Python 数据持久化:JSON
- 第二个spring冲刺总结
- 单片机c语言模块化实例程序设计,单片机C语言模块化设计
- Web开发者一定会用的5个google浏览器插件
- mysql error 28,MySQL错误:Got error 28 from storage engine
- java拦截器要怎么写_SpringMVC中的拦截器详解及代码示例
- html邮件和英文邮件,英文邮件中Best wishes和Best regards的区别
- (C++)输入两个正整数m和n,求其最大公约数和最小公倍数(辗转相除法)
- Burp Suite设置浏览器代理
- SQL面试题:经典50例
- 工具分享:ideaIU-2019.2.4_windows正版最新(附下载链接)
- ICMPv6与NDP
- python大气校正_sen2cor批量大气校正Sentinel2数据——python代码
热门文章
- 昆特牌显示无法连接至服务器,巫师之昆特牌总是显示无法连接网络
- 汕头大学计算机转专业,2021年汕头大学大一新生转专业及入学考试相关规定
- 电脑故障恢复控制台命令
- python多线程爬取美图录网站图集按模特姓名存储到本地(二)
- Java自动装箱与自动拆箱(包装类)以及Integer和Double的valueOf()源码分析
- 搭建完全分布式HBase
- 第一章-问题求解策略-LA4238-Area of Polycubes
- DDD(领域驱动设计)系列主题:DDD战略设计和战术设计分析流程及关键输出物
- 计算机专业装win几,老电脑装win7还是win10_老电脑装win10还是win7
- 葫芦娃登录后显示服务器维护,葫芦娃手游新手常见问题解答