redis 批量查询set sscan
程序员文章站
2022-07-05 11:50:56
...
当数据量比较小时可以使用smembers命令取出全部key,但是当数据量比较大情况下,使用这个命令会阻塞住,可以通过sscan命令分批次查看数据。
List<String> list = new ArrayList<>();
String cursor = "0";
long l1 = System.currentTimeMillis();
while(true){
ScanResult<String> compid = jedisCluster.sscan("compid", cursor);
List<String> result = compid.getResult();
list.addAll(result);
cursor = compid.getStringCursor();
if(list.size()>2000)
break;
}
System.out.println(System.currentTimeMillis()-l1);
sscan命令有一个游标cursor参数,通过它来确定读取的数据位置。sscan命令返回结果是一个ScanResult对象,通过getResult方法得到数据,通过getStringCursor方法得到下一次查询的游标位置,在下一次查询时传入即可。
————————————————
版权声明:本文为CSDN博主「依鹏」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_37240709/article/details/83447625