redis对于key的操作命令

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redis对于key的操作命令相关的知识,希望对你有一定的参考价值。

redis对于key的操作命令


del key1 key2 ... keyn

作用删除1个或多个键

返回值不存在的key忽略掉,返回真正删除的key的数量

技术分享


rename key newkey

作用key赋一个新的key

:如果newkey已存在,newkey的原值被覆盖

技术分享


renamenx key newkey

技术分享


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个数据库,015编号,

如果想打开更多数据库,可以从配置文件修改)


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

技术分享


exists key  (判断key是否存在,返回1/0

技术分享


type key

返回key存储的值的类型

string,link,set,order set, hash

技术分享


ttl key

作用查询key的生命周期

返回秒数

 

:对于不存在的key或已过期的key/不过期的key,都返回-1

Redis2.8,对于不存在的key,返回-2

技术分享


expire key (整型值)

作用设置key的生命周期,以秒为单位

pexpire key 毫秒数设置生命周期

pttl  key, 以毫秒返回生命周期

技术分享

技术分享


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置为永久有效

技术分享


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"


本文出自 “一觞酒尽半生愁” 博客,请务必保留此出处http://wangzhao.blog.51cto.com/10065719/1739787

以上是关于redis对于key的操作命令的主要内容,如果未能解决你的问题,请参考以下文章

Redis对于key的操作命令

redis对于key的操作命令

对于redis的批量删除指定key,有没有好的方法

C#Redis 常用key操作

redis中key的基本操作

redis 命令 详解 整理