redis根据key前缀批量查询

9 篇文章 1 订阅

redis没有直接通过通配符批量查询kv的

但是我们可以通过通配符获得k,在由k获得v

 

比如有这些k,格式是 企业_车牌_颜色

 

我们要获取测试公司的所有车辆的v

可以keys 测试公司_*

获得所有key之后

在用mget获取所有key的v

 

java代码如下:

/**
	 * 前缀匹配keys
	 * @param key
	 * @return
	 */
	public static String[] keysPre(String key){
		Jedis jedis = RedisPoolUtil.getInstance();
		Set<byte[]> keys = jedis.keys((key+"_*").getBytes());
		Set<String> keystr = new HashSet<>();
		for (byte[] bytes : keys) {
			keystr.add(new String(bytes));
		}
		Object[] objects = keystr.toArray();
		String[] objecta = (String[])keystr.toArray();
		String str[]= Arrays.copyOf(objects, objects.length, String[].class);

		RedisPoolUtil.closeConn();
		return str;
	}

	/**
	 * 批量查询key的值
	 * @param key
	 * @return
	 */
	public static String mget(String... key){
		Jedis jedis = RedisPoolUtil.getInstance();
		List<String> mget = jedis.mget(key);
		RedisPoolUtil.closeConn();
		return mget.toString();
	}

 查询代码:

String[] strings = RedisOps.keysPre("测试公司");
String s = RedisOps.mget(strings);

 我封装的jedis工具可以看下:https://blog.csdn.net/corleone_4ever/article/details/84582394

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值