最近工作中,遇到一个不太难的问题,但是一般情况下 通常,我们使用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());
}
}
测试返回正确,就说明能匹配。然后我们看下re