欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

相关标签: Java java redis