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

[经验分享] redis对于key的操作命令

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-2-1 10:32:06 | 显示全部楼层 |阅读模式
redis对于key的操作命令

del key1 key2 ... keyn
作用: 删除1个或多个键
返回值: 不存在的key忽略掉,返回真正删除的key的数量
QQ截图20160201102941.png

rename key newkey
作用: 给key赋一个新的key名
注:如果newkey已存在,则newkey的原值被覆盖
QQ截图20160201102949.png

renamenx key newkey
QQ截图20160201102959.png

move key db
redis 127.0.0.1:6379[1]> select 2
OK
redis 127.0.0.1:6379[2]> keys *
(empty list or set)
redis 127.0.0.1:6379[2]> select 0
OK
redis 127.0.0.1:6379> keys *
1) "name"
2) "cc"
3) "a"
4) "b"
redis 127.0.0.1:6379> move cc 2
(integer) 1
redis 127.0.0.1:6379> select 2
OK
redis 127.0.0.1:6379[2]> keys *
1) "cc"
redis 127.0.0.1:6379[2]> get cc
"3"

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

keys pattern 查询相应的key
在redis里,允许模糊查询key
有3个通配符 *, ? ,[]
*: 通配任意多个字符
?: 通配单个字符
[]: 通配括号内的某1个字符
redis 127.0.0.1:6379> flushdb
OK
redis 127.0.0.1:6379> keys *
(empty list or set)
redis 127.0.0.1:6379> mset one 1 two 2 three 3 four 4
OK
redis 127.0.0.1:6379> keys o*
1) "one"
redis 127.0.0.1:6379> key *o
(error) ERR unknown command 'key'
redis 127.0.0.1:6379> keys *o
1) "two"
redis 127.0.0.1:6379> keys ???
1) "one"
2) "two"
redis 127.0.0.1:6379> keys on?
1) "one"
redis 127.0.0.1:6379> set ons yes
OK
redis 127.0.0.1:6379> keys on[eaw]
1) "one"

randomkey 返回随机的key
QQ截图20160201103008.png

exists key  (判断key是否存在,返回1/0)
QQ截图20160201103013.png

type key
返回key存储的值的类型
有string,link,set,order set, hash
QQ截图20160201103018.png

ttl key
作用: 查询key的生命周期
返回: 秒数

注:对于不存在的key或已过期的key/不过期的key,都返回-1
Redis2.8中,对于不存在的key,返回-2
QQ截图20160201103023.png

expire key (整型值)
作用: 设置key的生命周期,以秒为单位
pexpire key 毫秒数, 设置生命周期
pttl  key, 以毫秒返回生命周期
QQ截图20160201103030.png


expireat key timestamp

EXPIREAT的作用和EXPIRE一样,都用于为key设置生存时间。

不同在于EXPIREAT命令接受的时间参数是UNIX时间戳(unix timestamp)。

返回值:

如果生存时间设置成功,返回1。

当key不存在或没办法设置生存时间,返回0

127.0.0.1:6379> set time www.google.com

OK

127.0.0.1:6379> expireat time 1355292000   #到2012年12月12日过期

(integer) 1

<!--从1970-01-01到2012-12-12的秒数-->

1355292000

注:

Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp)

是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。

UNIX时间戳的0按照ISO 8601规范为 :1970-01-01T00:00:00Z.

一个小时表示为UNIX时间戳格式为:3600秒;一天表示为UNIX时间戳为86400秒,闰秒不计算。

在大多数的UNIX系统中UNIX时间戳存储为32位,这样会引发2038年问题或Y2038。


persist key  (作用: 把指定key置为永久有效)

QQ截图20160201103035.png

object subcommand [arguments [arguments]]
OBJECT命令允许从内部察看给定key的Redis对象。
它通常用在除错(debugging)或者了解为了节省空间而对key使用特殊编码的情况。
当将Redis用作缓存程序时,你也可以通过OBJECT命令中的信息,决定key的驱逐策略(eviction policies)。
OBJECT命令有多个子命令:
OBJECT REFCOUNT <key>返回给定key引用所储存的值的次数。此命令主要用于除错。
OBJECT ENCODING <key>返回给定key锁储存的值所使用的内部表示(representation)。
OBJECT IDLETIME <key>返回给定key自储存以来的空转时间(idle, 没有被读取也没有被写入),以秒为单位。
对象可以以多种方式编码:
字符串可以被编码为raw(一般字符串)或int(用字符串表示64位数字是为了节约空间)。
列表可以被编码为ziplist或linkedlist。ziplist是为节约大小较小的列表空间而作的特殊表示。
集合可以被编码为intset或者hashtable。intset是只储存数字的小集合的特殊表示。
哈希表可以编码为zipmap或者hashtable。zipmap是小哈希表的特殊表示。
有序集合可以被编码为ziplist或者skiplist格式。ziplist用于表示小的有序集合,而skiplist则用于表示任何大小的有序集合。
假如你做了什么让Redis没办法再使用节省空间的编码时(比如将一个只有1个元素的集合扩展为一个有100万个元素的集合),特殊编码类型(specially encoded types)会自动转换成通用类型(general type)。
返回值:
REFCOUNT和IDLETIME返回数字。
ENCODING返回相应的编码类型。
127.0.0.1:6379> set ceshi ABC
OK
127.0.0.1:6379> object refcount ceshi
(integer) 1
127.0.0.1:6379> object idletime ceshi
(integer) 25
127.0.0.1:6379> get ceshi
"ABC"
127.0.0.1:6379> object idletime ceshi
(integer) 2
127.0.0.1:6379> set ceshi1 23456789
OK
127.0.0.1:6379> object encoding ceshi1
"int"

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

返回或保存给定列表、集合、有序集合key中经过排序的元素。

排序默认以数字作为对象,值被解释为双精度浮点数,然后进行比较。

一般SORT用法

最简单的SORT使用方法是SORT key。

假设today_cost是一个保存数字的列表,SORT命令默认会返回该列表值的递增(从小到大)排序结果。

127.0.0.1:6379> lpush ceshi 1

(integer) 1

127.0.0.1:6379> lpush ceshi 2

(integer) 2

127.0.0.1:6379> lpush ceshi 3

(integer) 3

127.0.0.1:6379> lpush ceshi 4

(integer) 4

127.0.0.1:6379> lpush ceshi 5

(integer) 5

127.0.0.1:6379> lpush ceshi 1.5

(integer) 6

127.0.0.1:6379> sort ceshi

1) "1"

2) "1.5"

3) "2"

4) "3"

5) "4"

6) "5"



运维网声明 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-172254-1-1.html 上篇帖子: redis字符串类型的操作 下篇帖子: redis安装与配置文件详解
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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