Redis Demo系列之(二)模糊匹配

版权声明:欢迎转载,转载请说明出处https://csdn.yanxml.com。大数据Github项目地址https://github.com/SeanYanxml/bigdata。 https://blog.csdn.net/u010416101/article/details/81229163

前言

经常需要使用模糊匹配Redis内keys,模糊匹配Redis内的keys可以通过2种方式:

  • keys
  • scan
    但是值得注意的是,这两种方式都是不可以于集群环境下直接使用的。集群环境推荐使用{hash_tag},将相同的hash_tag的键放置于一个节点上,便于计算了运行。当然,我们也可以扫描当前的所有主节点进行操作。(详情请看Redis & Redis Cluster 字段模糊匹配及删除)

本文相关代码,可在我的Github项目https://github.com/SeanYanxml/bigdata/tree/master/redis 目录下可以找到。
PS: (如果觉得项目不错,可以给我一个Star。)


Demos

public class FuzzyKeysDemo {
    public static void main(String[] args) {
        // 方式一 使用keys命令进行搜索
        JedisPoolManager poolManager = new JedisPoolManager();
        Jedis jedis = poolManager.getJedis();

        Set<String> moneyKeysSet = jedis.keys("Money*");
        System.out.println("Demo: Keys Demos");
        for(String name : moneyKeysSet){
            System.out.println("Key: "+name+ " Type:"+jedis.type(name));
        }

        // 方式二 使用扫描类进行搜索
//      Jedis jedis = new Jedis("127.0.0.1");
        ScanParams scanParams = new ScanParams();
        scanParams.match("prifix*");
        scanParams.count(1000);
        // 新scan 方法为 scan(String cursor, ScanParams scanParams)
        ScanResult<String> result = jedis.scan(0,scanParams);
        result.getResult().forEach(key -> {
            jedis.del(key);
        });
    }

}

//Demo: Keys Demo:
//Key: MoneyOP Type:string
//Key: MoneyRankList Type:zset

// Redis单线程 查询有可能会导致线上服务卡顿
阅读更多

扫码向博主提问

在风中的意志

非学,无以致疑;非问,无以广识
  • 擅长领域:
  • Java
  • 大数据
去开通我的Chat快问
换一批

没有更多推荐了,返回首页