redis模糊匹配
最近項目中有通過模糊匹配拿到redis中的鍵值的需求,但是官方文檔和博客中的謬誤太多,因此我在這里寫一下我使用redis進行模糊匹配的方式。
第一步添加依賴
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency>第二步添加配置類
@Configuration public class RedisConfig {/*** 配置RedisTemplate的序列化方式*/@Beanpublic RedisTemplate redisTemplate(RedisConnectionFactory factory) {RedisTemplate redisTemplate = new RedisTemplate();redisTemplate.setConnectionFactory(factory);// 指定key的序列化方式:stringredisTemplate.setKeySerializer(RedisSerializer.string());// 指定value的序列化方式:jsonredisTemplate.setValueSerializer(RedisSerializer.json());return redisTemplate;}}第三步模糊匹配拿到鍵集
這里我試過了*號一定要寫在:后面才能實現模糊匹配,否則無法完成。之后通過寫好的模糊鍵值放入keys()方法中即可完成模糊匹配。
String ownerKey =RedisConstant.OWNER_KEY+phone+":*";Set<String> keys = redisTemplate.keys(ownerKey);?注意:這里使用的是redisTemplate.keys()這個方法進行模糊匹配的,如果使用的是其它方法是無法使用模糊匹配的。
第四步遍歷鍵集拿到值集
// 遍歷拿到值集for (String key : keys) {String str = (String) redisTemplate.opsForValue().get(key);VisitorRecordsDto fromRedis = objectMapper.readValue(str, VisitorRecordsDto.class);}總結
- 上一篇: 密码学中的一些数学基础
- 下一篇: margin和padding的区别