Bootstrap

python判断redis中key是否存在_Redis中关于Key的模糊查找

最近使用Redis优化项目功能,其中有一部分为模糊查询,找了很多帖子,也没有找到很好的解决方案和思路,最终皇天不负有心人啊,终于让我找到了!!!

可以通过Redis中keys命令进行获取key值,具体命令格式:keys pattern

文中提到redis中允许模糊查询的有3个通配符,分别是:*,?,[]

其中:

*:通配任意多个字符

?:通配单个字符

[]:通配括号内的某一个字符

=========================================================================

在实际项目中有可能会使用spring集成redis的RedisTemplate进行操作,这样在注入模板时可能会出现模糊查询不好用的情况,是因为keys方法是存在于StringRedisTemplate子类中(父类-RedisTemplate)的

在spring配置时,一定要注意!!!

=========================================================================

实际操作中具体的思路:

1. 将要查询的条件当做key进行ZSet存储

2. 在获取时,调用StringRedisTemplate.keys(pattern),例:

1

2

3

4

5

publicSet keys(String pattern){

returnstringRedisTemplate.keys("*"+ pattern + "*");

// return stringRedisTemplate.keys("?" + pattern);

// return stringRedisTemplate.keys("[" + pattern + "]");

}

ps:模糊查找适用于 String数据结构,对redis支持的其他结构(List、set等),没有 验证是否支持。

实践代码:

/**

* redis缓存操作类

*/

@Service

publicclassRedisCacheServiceimplementsInitializingBean{

privateValueOperations valueOperations;

@Autowired

privateStringRedisTemplate redisTemplate;

@SuppressWarnings("unchecked")

@Overr

;