Redis中key相关主要操作函数

总结redis中跟key相关的常用函数 1)keys 语法:keys pattern 解释:查找所有匹配指定模式pattern的key
[root@cjlx ~]# 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> del score1  
(integer) 1  
redis 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 #默认0  
1) "zhangsan01"  
2) "wangwu"  
redis 127.0.0.1:6379> move stu 1  #移动到 1  
(integer) 1  
redis 127.0.0.1:6379> smembers stu  
(empty list or set)  
redis 127.0.0.1:6379> select 1 #选择db 1  
OK  
redis 127.0.0.1:6379[1]> smembers stu  
1) "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.stud  
1) "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.[i] desc get stu.level.[/i] 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.[i] asc get stu.name.[/i]  
1) "jim"  
2) "joe"  
3) "admin"
sort虽然很“厉害”,但尽量不要让redis服务器来sort大量的数据。可以通过设定阀值减少要sort的数据,或把排序操作向前移,在web服务器或各个应用上来sort。

3 个评论

要是讲一下redis的应用场景会更好!
你觉得redis应用场景最多是什么 我们线上是缓存数据,比如监控类的一些开关状态,或者监控频率,然后定期来取,做相应监控操作。
初学者。对应用场景没什么概念。。。

要回复文章请先登录注册