Redis--模糊查询(转)

摘要:
创建测试数据查询创建:setnamexiaoming查询:getname1,模糊搜索查询Redis模糊搜索1,keys*匹配数据库中的所有key2,keys?在Redis 2.8之前,当密钥不存在或未设置密钥的剩余生存期时,命令返回-1#不存在的keyredis˃FLUSHDBOKredis˃TTLkey-2#密钥存在,但剩余生存期Redis˃SETkeyvalueOKredis˃TTLkey-1#keyredis with remaining lifetime˃EXPIREKey100861redis˃TTPKey100105,TYPEKEY:返回密钥存储的值类型。返回值:nonestring(string)list(list)set(set)zset(有序集)hash(哈希表)示例:#string redis˃SETweather“sun”OKredis˃TYPEWeatherstring#list redis˃LPUSHbook_list“programminginscala”1redis˃YPEbok_ Listlist#set redis˃SADDpat“dog”1redis˃TYPEpatset

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

创建:
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 

# 如果redis-cli没有设置成系统变量,需要指定redis-cli的完整路径 
如:
/opt/redis/redis-cli keys "*" | xargs /opt/redis/redis-cli del
复制代码

3、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 。
复制代码
# 不存在的 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、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

免责声明:文章转载自《Redis--模糊查询(转)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇ADO.NET复习【原创】《.net本质论》读书笔记三下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

禁用wordpress自动保存为草稿

wordpress有个很讨厌的功能,叫Post Revisions,保存博文日志的不同版本,同样的内容多次占用数据库,多人用户维护一个blog用这个有用处,单一维护的blog基本是数据库浪费空间。禁用Post Revisions的方法是,在wp-config.php文件中增加一行 define(‘WP_POST_REVISIONS’, false); 那么...

Java分布式锁的三种实现方案(redis)

方案一:数据库乐观锁 乐观锁通常实现基于数据版本(version)的记录机制实现的,比如有一张红包表(t_bonus),有一个字段(left_count)记录礼物的剩余个数,用户每领取一个奖品,对应的left_count减1,在并发的情况下如何要保证left_count不为负数,乐观锁的实现方式为在红包表上添加一个版本号字段(version),默认为0。...

SQL Server 2008开启sa账户以及如何用JDBC进行连接

做实验需要用Java与SQL Server连接,因为使用的 SQL 2008 Express Edition 是基于 Visual Studio2010 安装包安装时一起安装的,所以为了方便数据库的操作,首先下载了独立的 SQL Server Management Studio 安装包进行安装 。安装完毕后设置 SQL 癿登陆模式,因为 VS2010 自带...

Python学习笔记(20)pymysql模块

一、pymysql模块 pymysql模块是python中连接数据库的一个常用第三方库 2.1 pymysql.connect() 通过该方法连接数据库 import pymysql # 打开数据库连接 db = pymysql.connect(host="XX.XXX.XXX.XXX",user='testuser',passwd:'test123',"...

MySQL高可用集群方案

一、Mysql高可用解决方案 方案一:共享存储 一般共享存储采用比较多的是 SAN/NAS 方案。 方案二:操作系统实时数据块复制 这个方案的典型场景是 DRBD,DRBD架构(MySQL+DRBD+Heartbeat) 方案三:主从复制架构 主从复制(一主多从) MMM架构(双主多从) MHA架构(多主多从) 方案四:数据库高可用架构 这种方式比较经典的...

SQL多表联合查询(Access数据库表)

条件:Access数据库的三个表,a表、b表、c表,三个表结构不同,其中都有字段ID,a表为主表,其中的ID不一定b表、c表中都存在,建立此三个表的联合查询。 根据SQL语法,通过连接运算符可以实现多个表查询。连接可以在Select 语句的FROM子句或Where子句中建立,在FROM子句中指出连接时有助于将连接操作与Where子句中的搜索条件区分开来。 ...