jest scan cursor all

该代码示例展示了如何使用Jedis客户端连接到Redis服务器,并通过ScanParams匹配指定模式进行键扫描。程序遍历扫描结果,收集不重复的元素,最后输出元素数量及其唯一值的计数。这在处理大量Redis键并需要筛选特定模式的数据时非常有用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import org.apache.commons.lang3.StringUtils;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.ScanParams;
import redis.clients.jedis.ScanResult;
import redis.clients.jedis.Tuple;

import java.util.ArrayList;
import java.util.List;

public class Test {

    public static void main(String[] args) {

        String redisIp="127.0.0.1";
        Integer redisPort=6379;
        Integer redisDB=0;
        String matchParam="*_11999_165_*";
        String redisKey="CHECK:AUTO:NOTIFICATION:TIMEOUT_0";

        List<String> ks=new ArrayList<>();
        Jedis jedis = new Jedis(redisIp, redisPort, 0);
        jedis.select(redisDB);
        ScanParams scanParams=new ScanParams();
        scanParams.match(matchParam);

        String cursor="0";
        do{
            ScanResult<Tuple> result = jedis.zscan(redisKey, cursor,scanParams);
            cursor = result.getCursor();
            ks.addAll(result.getResult().stream().map(s->s.getElement()).collect(Collectors.toList()));
        }while(StringUtils.isNotEmpty(cursor)&&!cursor.equals("0"));

        jedis.close();

        System.out.println("size:"+ks.size()+",count:"+ks.stream().distinct().count());
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值