Redis 模糊查询删除操作

创建一条测试 数据 查询 (默认是 DB 0 )

创建:
set name xiaoming
查询:
get name 

1、模糊搜索查询 (redis 默认有16个DB , 0-15 )

Redis 模糊搜索
1、keys *   匹配数据库中所有 key 
2、keys h?llo   匹配 hello , hallo 和 hxllo 等。
3、keys h*llo   匹配 hllo 和 heeello 等。
4、keys h[ae]llo   匹配 hallo 和 hello ,但不匹配 hillo;特殊符号用 \ 隔开。
redis> keys *o*
1) "four"
2) "two"
3) "one"
redis> keys t??
1) "two"
redis> keys t[w]*
1) "two"
redis> keys *    # 匹配数据库内所有 key
1) "four"
2) "three"
3) "two"
4) "one"
redis-cli  进入默认是第一个DB 0 ; select 切换 DB 
> select 2;

2、删除指定key :

# 删除所有以 user 开头的key 可以这样实现:

先获取

# redis-cli keys "user*"
1) "user1"
2) "user2"

执行删除命令

# redis-cli keys "user*" | xargs redis-cli del
(integer) 2
# 删除成功
# 删除当前数据库中的所有Key 
> flushdb 
# 删除所有数据库中的key 
> flushall
# 删除单个 key
redis> SET name zhangsan
OK
redis> DEL name
(integer) 1

# 删除一个不存在的 key
redis> EXISTS lisi
(integer) 0

redis> DEL phone   # 失败,没有 key 被删除
(integer) 0
# 同时删除多个 key
redis> SET name "redis"
OK
redis> SET type "key-value store"
OK
redis> SET website "redis.com"
OK
redis> DEL name type website
(integer) 3
# 批量删除匹配通配符的key用到了Linux中的管道和xargs参数:

redis-cli keys "s*" | xargs redis-cli del
# 如果需要制定数据库,需要用到 -n 数据库编号 参数,下面是删除 2数据库中 s开头的键:

redis-cli -n 2 keys "s*" | xargs redis-cli -n 2 del

redis-cli keys "*" | xargs redis-cli del 

 

3、Redis Sortedset 数据查询

redis sortedset 数据查询:

172.16.12.36:6003> zrank qa:hall 103228953392713728
(integer) 10021

172.16.12.36:6003> ZCARD qa:hall
(integer) 10022

 

4、TTL key : 以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live)。

返回值:
当 key 不存在时,返回 -2 。
当 key 存在但没有设置剩余生存时间时,返回 -1 。
否则,以秒为单位,返回 key 的剩余生存时间。
在 Redis 2.8 以前,当 key 不存在,或者 key 没有设置剩余生存时间时,命令都返回 -1 。

查询检测 ttl 值:

# 不存在的 key
redis> FLUSHDB
OK
redis> TTL key
(integer) -2
# key 存在,但没有设置剩余生存时间
redis> SET key value
OK
redis> TTL key
(integer) -1
# 有剩余生存时间的 key
redis> EXPIRE key 10086
(integer) 1

redis> TTL key
(integer) 10010

 

5、redis type key

TYPE key : 返回 key 所储存的值的类型。

返回值:
none (key不存在)
string (字符串)
list (列表)
set (集合)
zset (有序集)
hash (哈希表)
# 字符串
redis> SET weather "sunny"
OK
redis> TYPE weather
string
# 列表
redis> LPUSH book_list "programming in scala"
(integer) 1
redis> TYPE book_list
list
# 集合
redis> SADD pat "dog"
(integer) 1
redis> TYPE pat
set

 


原文链接:https://www.cnblogs.com/sharesdk/p/9203449.html

 

 

 

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现Redis模糊查询删除操作,可以使用scan命令来遍历所有的key,并根据匹配条件进行删除。首先,需要连接到Redis主节点,并设置scan命令的选项为SCAN_RETRY,以确保不会漏掉任何key。然后,使用scan命令进行遍历,将匹配到的key进行删除。在删除大key时,可以使用unlink函数进行非阻塞删除,这需要确保Redis的版本大于等于4.0。如果需要查询的key包含了前缀,需要在查询时加上前缀。以下是一个示例代码: ```java @Autowired private RedisUtil redisUtil; @Test void testDeleteKeys() { String prefix = "articleComment::"; // 设置前缀 String pattern = prefix + "*"; // 设置模糊查询的匹配条件 Set<String> keys = redisUtil.keys(pattern); // 获取匹配的key集合 for (String key : keys) { redisUtil.deleteKeys(key); // 删除匹配的key } } ``` 这段代码使用了RedisUtil工具类中的keys和deleteKeys方法来实现模糊查询删除操作。其中,keys方法用于获取匹配的key集合,deleteKeys方法用于删除指定的key。通过设置前缀和模糊查询的匹配条件,可以实现对指定key的模糊查询删除操作。 #### 引用[.reference_title] - *1* [redis 模糊查询 批量删除](https://blog.csdn.net/Little___Turtle/article/details/124943092)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [【黄啊码】redis实现模糊查询删除|redis根据前缀获取key](https://blog.csdn.net/TiaoZhanJi_Xian/article/details/124500851)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值