redis 正则匹配value_Redis 获取匹配所有的key

最近工作中,遇到一个不太难的问题,但是一般情况下 通常,我们使用redis要求的都是key不能相同,但是这次的问题是 值相等的key 不能存在多个。解决的时候,看到redis可以写正则表达式获取匹配的key,所有给自己没有规律的key,加了一个前缀,毕竟一个系统 ,缓存的数据还是很多的,避免拿到别人的key。接下来,我们来看看代码怎么写的。

首先写了一个测试用例,测试自己写的正则能匹配到值。

importjava.util.regex.Matcher;importjava.util.regex.Pattern;/*** @ClassName: RegexMatches

* @Description: 测试正则表达式无误 但是redis 不需要加一点 ‘.’

* @Author youli

* @date 2020年12月7日*/

public classRegexMatches {public static voidmain(String args[]) {

String str= "card_key51e5f269-aef9-446a-8c86-2f19cae2bc";

String pattern= "card_key.*";

Pattern r=Pattern.compile(pattern);

Matcher m=r.matcher(str);

System.out.println(m.matches());

}

}

测试返回正确,就说明能匹配。然后我们看下redis里边的写法

最近工作中,遇到一个不太难的问题,但是一般情况下 通常,我们使用redis要求的都是key不能相同,但是这次的问题是 值相等的key 不能存在多个。解决的时候,看到redis可以写正则表达式获取匹配的key,所有给自己没有规律的key,加了一个前缀,毕竟一个系统 ,缓存的数据还是很多的,避免拿到别人的key。接下来,我们来看看代码怎么写的。 首先写了一个测试用例,测试自己写的正则能匹配到值。 importjava.util.regex.Matcher;importjava.util.regex.Pattern;/*** @ClassName: RegexMatches * @Description: 测试正则表达式无误 但是redis 不需要加一点 ‘.’ * @Author youli * @date 2020年12月7日*/ public classRegexMatches {public static voidmain(String args[]) { String str= "card_key51e5f269-aef9-446a-8c86-2f19cae2bc"; String pattern= "card_key.*"; Pattern r=Pattern.compile(pattern); Matcher m=r.matcher(str); System.out.println(m.matches()); } } 测试返回正确,就说明能匹配。然后我们看下redis里边的写法
经验分享 程序员 微信小程序 职场和发展