美文网首页
Redis set数据结构value值全部拿出方法

Redis set数据结构value值全部拿出方法

作者: wang_cheng | 来源:发表于2019-10-21 10:18 被阅读0次

    Redis set数据结构如果用smembers 如果数据量较多的话,使用这个势必会造成线上redis卡顿一下,


    image.png
    1)该方法模糊匹配指定的Key
     获得所有的key之后,可以遍历每一个key,取出key对应的值,进行具体的操作
            // 开始游标
            String cursor = "0";
            // 扫描参数
            ScanParams scanParams = new ScanParams();
            scanParams.count(10000);
            scanParams.match("HASH-TAG-*");
            // 扫描结果
            scanResult = jedis.scan(cursor, scanParams);
            // 扫描后的游标,如果为0,则表明扫描结束
            cursor = scanResult.getStringCursor();
            // 获得扫描的所有key集合
            List<String> keyList = scanResult.getResult(); 
    
           
    
    2)获取所有的value值
    这边定义一个集合,下面方法完成遍历后加入到集合中返回,可以拿到set结构中所有的value值
    List<String> values = new ArrayList<>();     
                String cursor ="0";
                ScanResult<String> scanResult;
                do {
                    scanResult = jc.sscan(key,cursor);
                    cursor = scanResult.getStringCursor();
                    if (CollectionUtils.isNotEmpty(scanResult.getResult())){
                        values.addAll(scanResult.getResult());
                    }
        //在这一步的时候内部已经迭代完成了,返回的肯定不是"0" 用do while结构比较合适点
                }while (!"0".equals(cursor));
            }
    

    相关文章

      网友评论

          本文标题:Redis set数据结构value值全部拿出方法

          本文链接:https://www.haomeiwen.com/subject/hkgzmctx.html