日期:2014-05-16  浏览次数:20512 次

Redis系列-key相关主要操作函数

这篇blog主要总结下,redis中跟key相关的常用函数

1)keys

语法:keys pattern

解释:查找所有匹配指定模式pattern的key

[root@xsf001 ~]# redis-cli 
redis 127.0.0.1:6379> keys *  #所有key
 1) "score"
 2) "stu"
 3) "score1"
 4) "dest"
 5) "lst.user"
 6) "lst.tect"
redis 127.0.0.1:6379> keys scor? 
1) "score"
redis 127.0.0.1:6379> keys scor[ee1]
1) "score"
2)randomkey

语法:randomkey 

解释:返回一个随机key

redis 127.0.0.1:6379> randomkey
"score"
redis 127.0.0.1:6379> randomkey
"list.user"

3)exists

语法:exists key

解释:判断一个key是否存在

redis 127.0.0.1:6379> exists score  #key存在 返回1
(integer) 1
redis 127.0.0.1:6379> exists scorefda #key不存在 返回0
(integer) 0
4)type

语法:type key

解释:返回key所存储的值类型,返回值:none【key不存在】,string,list ,set, zset和hash

redis 127.0.0.1:6379> type score
zset
redis 127.0.0.1:6379> type lst.user
list

5)expire

语法:expire key seconds

解释:设置key的生存时间,单位是秒,当key过期时,会被自动删除

redis 127.0.0.1:6379> expire dest 30
(integer) 1
redis 127.0.0.1:6379> expire dest1 30 # key不存在
(integer) 0

6)ttl

语法: ttl key

解释:得到key能存活时间,如果key不存在或没有设置生存时间时,返回-1

redis 127.0.0.1:6379> expire diff 100
(integer) 1
redis 127.0.0.1:6379> ttl diff
(integer) 94
redis 127.0.0.1:6379> ttl diff
(integer) 92
7)persist

语法:persist key

解释:移除给定key的生存时间

redis 127.0.0.1:6379> ttl diff
(integer) 28
redis 127.0.0.1:6379> persist diff
(integer) 1
redis 127.0.0.1:6379> ttl diff
(integer) -1

8)rename

语法:rename key newkey

解释:将key改名为newkey

redis 127.0.0.1:6379> smembers diff
1) "zhangsan01"
redis 127.0.0.1:6379> rename diff diff01
OK
redis 127.0.0.1:6379> smembers diff
(empty list or set)
redis 127.0.0.1:6379> smembers diff01
1) "zhangsan01"
redis 127.0.0.1:6379> rename diff diff01
(error) ERR no such key
注意:当key和newkey相同或key不存在时,返回错误;当newkey已存在时,rename将覆盖旧值。

9)renamenx
语法:renamenx key newkey

解释:当且仅当newkey不存在时,改名key

redis 127.0.0.1:6379> renamenx diff01 stu  #stu存在
(integer) 0
redis 127.0.0.1:6379> renamenx diff01 diff #diff不存在
(integer) 1

10)del

语法:del key [key ...]

   解释:删除一个或多个key

redis 127.0.0.1:6379