Redis的key操作命令

作者:吴泽鑫 分类: Redis 发布于:2015-10-30 16:12 ė849次浏览 60条评论

keys pattern

意思:在reds中,允许模糊查询。查询相应的key,pattern表示通配符

通配符pattern有:  *, ? ,[]

*: 通配任意多个字符

?: 通配单个字符

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

例子:

127.0.0.1:6379> flushdb
OK
127.0.0.1:6379> mset one 1 two 2 three 3 four 4
OK
127.0.0.1:6379> keys *
1) "three"
2) "two"
3) "one"
4) "four"
127.0.0.1:6379> keys *o
1) "two"
127.0.0.1:6379> keys o*
1) "one"
127.0.0.1:6379> keys ???
1) "two"
2) "one"
127.0.0.1:6379> keys on[eaw]
1) "one"
127.0.0.1:6379> keys on[ewa]
1) "one"


del key1 key2 ... Keyn

意思: 删除1个或多个键

返回值: 不存在的key忽略掉,返回真正删除的key的数量

例子:

127.0.0.1:6379> keys *
1) "three"
2) "two"
3) "one"
4) "four"
127.0.0.1:6379> del one two three four fire
(integer) 4
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> 

rename key newkey

意思: 给key赋一个新的key名

注:如果newkey已存在,则newkey的原值被覆盖

例子:

127.0.0.1:6379> set title wuzexin
OK
127.0.0.1:6379> keys *
1) "title"
127.0.0.1:6379> rename title jensen
OK
127.0.0.1:6379> keys *
1) "jensen"
127.0.0.1:6379> 

renamenx key newkey

意思: 把key改名为newkey

返回: 发生修改返回1,未发生修改返回0

注: nx--> not exists, 即, newkey不存在时,作改名动作

例子:

127.0.0.1:6379> keys *
1) "jensen"
127.0.0.1:6379> set name wuzexin
OK
127.0.0.1:6379> keys *
1) "jensen"
2) "name"
127.0.0.1:6379> renamenx name jensen
(integer) 0
127.0.0.1:6379> renamenx name newname
(integer) 1
127.0.0.1:6379> keys *
1) "jensen"
2) "newname"

move key db

意思:把对应的key移动到指定的db号中

注意: 一个redis进程,打开了不止一个数据库, 默认打开16个数据库,从0到15编号,如果想打开更多数据库,可以从配置文件修改

例子:

127.0.0.1:6379> select 0
OK
127.0.0.1:6379> keys *
1) "jensen"
2) "newname"
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> keys *
(empty list or set)
127.0.0.1:6379[1]> select 0
OK
127.0.0.1:6379> move jensen 1
(integer) 1
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> keys *
1) "jensen"

randomkey

意思:返回随机key

例子:

127.0.0.1:6379[1]> flushdb
OK
127.0.0.1:6379[1]> set test1 jensen
OK
127.0.0.1:6379[1]> set test2 wuzexin
OK
127.0.0.1:6379[1]> randomkey
"test2"
127.0.0.1:6379[1]> randomkey
"test1"
127.0.0.1:6379[1]> randomkey
"test2"

exists key

意思:判断key是否存在

返回:1/0

例子:

127.0.0.1:6379[1]> keys *
1) "test2"
2) "test1"
127.0.0.1:6379[1]> exists test1
(integer) 1
127.0.0.1:6379[1]> exists test2
(integer) 1
127.0.0.1:6379[1]> exists test3
(integer) 0

type key

意思:返回key存储的值的类型,有string,link,set,order set, hash

127.0.0.1:6379[1]> set name jensen
OK
127.0.0.1:6379[1]> sadd title blog
(integer) 1
127.0.0.1:6379[1]> rpush list a b c d
(integer) 4
127.0.0.1:6379[1]> keys *
1) "title"
2) "list"
3) "name"
127.0.0.1:6379[1]> type name
string
127.0.0.1:6379[1]> type title
set
127.0.0.1:6379[1]> type list
list

expire key 整型值

意思: 设置key的生命周期,以秒为单位

同理:

pexpire key 毫秒数, 设置生命周期

pttl  key, 以毫秒返回生命周期


ttl key

意思: 查询key的生命周期

返回: 秒数

注:对于不存在的key或已过期的key/不过期的key,都返回-1,Redis2.8或以上版本中,对于不存在的key,返回-2

例子:

127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> set name jensen
OK
127.0.0.1:6379> expire name 10
(integer) 1
127.0.0.1:6379> ttl name
(integer) 8
127.0.0.1:6379> ttl name
(integer) 7
127.0.0.1:6379> ttl name
(integer) 6
127.0.0.1:6379> ttl name
(integer) -2
127.0.0.1:6379> keys *
(empty list or set)


本文出自 Jensen-吴泽鑫的博客,转载时请注明出处及相应链接:http://www.wuzexin.cn/post-2.html

发表评论

电子邮件地址不会被公开。必填项已用*标注


Ɣ回顶部