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

Redis中大数据情况下set类型的批量查询方式sscan

程序员文章站 2022-03-05 09:54:41
...

当数据量比较小时可以使用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方法得到下一次查询的游标位置,在下一次查询时传入即可。

相关标签: redis