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

来源:互联网 发布:大数据的权威期刊 编辑:程序博客网 时间:2024/06/07 14:44

这篇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) 1redis 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 scorezsetredis 127.0.0.1:6379> type lst.userlist

5)expire

语法:expire key seconds

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

redis 127.0.0.1:6379> expire dest 30(integer) 1redis 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) 1redis 127.0.0.1:6379> ttl diff(integer) 94redis 127.0.0.1:6379> ttl diff(integer) 92
7)persist

语法:persist key

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

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

8)rename

语法:rename key newkey

解释:将key改名为newkey

redis 127.0.0.1:6379> smembers diff1) "zhangsan01"redis 127.0.0.1:6379> rename diff diff01OKredis 127.0.0.1:6379> smembers diff(empty list or set)redis 127.0.0.1:6379> smembers diff011) "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) 0redis 127.0.0.1:6379> renamenx diff01 diff #diff不存在(integer) 1

10)del

语法:del key [key ...]

   解释:删除一个或多个key

redis 127.0.0.1:6379> del score1(integer) 1redis 127.0.0.1:6379> del union diff aa  #key aa 不存在(integer) 2
11)move

语法:move key db

解释:将key移动到指定db

redis 127.0.0.1:6379> smembers stu #默认01) "zhangsan01"2) "wangwu"redis 127.0.0.1:6379> move stu 1  #移动到 1(integer) 1redis 127.0.0.1:6379> smembers stu(empty list or set)redis 127.0.0.1:6379> select 1 #选择db 1OKredis 127.0.0.1:6379[1]> smembers stu1) "zhangsan01"2) "wangwu"
12)sort

语法:sort key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern ...]] [ASC|DESC] [ALPHA] [STORE destination]

解释:返回或保持给定列表,集合,有序集合key中经过排序的元素

redis 127.0.0.1:6379> sort lst.tech limit 0 2 alpha desc #按字符集排序1) "tec06"2) "tec05"redis 127.0.0.1:6379> sort lst.stud1) "1"2) "2"3) "3"redis 127.0.0.1:6379> sort lst.stud desc 1) "3"2) "2"3) "1"redis 127.0.0.1:6379> keys stu.*1) "stu.name.2"2) "stu.name.3"3) "stu.level.1"4) "stu.level.2"5) "stu.level.3"6) "stu.name.1"redis 127.0.0.1:6379> sort lst.stud by stu.level.* desc get stu.level.* get stu.name.*1) "3"2) "admin"3) "2"4) "joe"5) "1"6) "jim"redis 127.0.0.1:6379> sort lst.stud by stu.level.* asc get stu.name.*1) "jim"2) "joe"3) "admin"

sort虽然很“厉害”,但尽量不要让redis服务器来sort大量的数据。可以通过设定阀值减少要sort的数据,或把排序操作向前移,在web服务器或各个应用上来sort。

原创粉丝点击