设为首页 收藏本站
查看: 851|回复: 0

[经验分享] Redis系列-key相关主要操作函数

[复制链接]

尚未签到

发表于 2015-11-12 14:14:09 | 显示全部楼层 |阅读模式
  这篇blog主要总结下,redis中跟key相关的常用函数
  1)keys
  语法:keys pattern
  解释:查找所有匹配指定模式pattern的key
  [iyunv@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> 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.* 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。
  

版权声明:本文为博主原创文章,未经博主允许不得转载。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-138385-1-1.html 上篇帖子: Memcache和Redis对比 下篇帖子: Redis数据持久化机制AOF原理分析之配置详解
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表