国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

spring redis 如何實(shí)現(xiàn)模糊查找key

瀏覽:2日期:2023-06-26 11:57:03
spring redis 模糊查找key用法

Set<String> keySet = stringRedisTemplate.keys('keyprefix:'+'*'); 需要使用StringRedisTemplate,或自定義keySerializer為StringRedisSerializer的redisTemplate redis里模糊查詢key允許使用的通配符:

* 任意多個(gè)字符

? 單個(gè)字符

[] 括號(hào)內(nèi)的某1個(gè)字符

源碼

org.springframework.data.redis.core.RedisTemplatepublic Set<K> keys(K pattern) { byte[] rawKey = rawKey(pattern); Set<byte[]> rawKeys = execute(connection -> connection.keys(rawKey), true); return keySerializer != null ? SerializationUtils.deserialize(rawKeys, keySerializer) : (Set<K>) rawKeys;}改善 Redis2.8以后可以使用scan獲取key 基于游標(biāo)迭代分次遍歷key,不會(huì)一次性掃描所有key導(dǎo)致性能消耗過大,減少服務(wù)器阻塞

可以通過count參數(shù)設(shè)置掃描的范圍

Set<String> keys = new LinkedHashSet<>();stringRedisTemplate.execute((RedisConnection connection) -> { try (Cursor<byte[]> cursor = connection.scan( ScanOptions.scanOptions() .count(Long.MAX_VALUE) .match(pattern) .build() )) {cursor.forEachRemaining(item -> { keys.add(RedisSerializer.string().deserialize(item));});return null; } catch (Exception e) {throw new RuntimeException(e); }});

Reids SCAN命令官方文檔

redis-redisTemplate模糊匹配刪除

 String key = 'noteUserListenedPoi:*'; redisTemplate.delete(key); LOGGER.info('redis中用戶收聽歷史被清空');

后來測試發(fā)現(xiàn)模糊查詢是可以用的, 刪除改成

Set<String> keys = redisTemplate.keys('noteUserListenedPoi:' + '*'); redisTemplate.delete(keys); LOGGER.info('{}, redis中用戶收聽歷史被清空'

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 水城县| 九龙坡区| 丹棱县| 丁青县| 丹东市| 雅江县| 清涧县| 丰顺县| 铜梁县| 阜城县| 北流市| 嘉善县| 灵台县| 资溪县| 边坝县| 呼伦贝尔市| 凉城县| 蕲春县| 武定县| 化德县| 湖州市| 清丰县| 昭通市| 聂荣县| 舞阳县| 富阳市| 北辰区| 紫云| 辽源市| SHOW| 灵川县| 襄垣县| 天等县| 无极县| 龙川县| 乳山市| 常德市| 同德县| 丰镇市| 衢州市| 津市市|