[redis]redis五种数据类型命令汇总整理(一)

2015-01-25 19:30:41 · 作者: · 浏览: 23

redis所有命令参考中文版

键key

命令

时间复杂度

命令描述

返回值

del key

O(N)

在key存在时删除key

被移除key的数量

dump key

O(N)

序列话给定key,并返回被序列化的值

?

exists key

O(1)

检查给定key是否存在

若key存在,返回1,否则返回0。

expire key seconds

O(1)

为给定key设置过期时间

设置成功返回1。

当key不存在或者不能为key设置生存时间时(比如在低于2.1.3中你尝试更新key的生存时间),返回0。

expireat key

timestamp

O(1)

同上

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

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

pexpire key

milliseconds

O(1)

设置 key 的过期时间,以毫秒计

?

pexpireat key

milliseconds-timestamp

O(1)

设置 key 过期时间的时间戳(unix timestamp) 以毫秒计

?

ttl key

O(1)

以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live)

key的剩余生存时间(以秒为单位)。

当key不存在或没有设置生存时间时,返回-1 。

pttl key

O(1)

以毫秒为单位返回 key 的剩余的过期时间

?

persist key

O(1)

移除 key 的过期时间,key 将持久保持

当生存时间移除成功时,返回1.

如果key不存在或key没有设置生存时间,返回0。

keys pattern

O(N)

查找所有符合给定模式( pattern)的 key

?

move key db

O(1)

将当前数据库的 key 移动到给定的数据库 db 当中

移动成功返回1,失败则返回0。

randomkey

O(1)

从当前数据库中随机返回一个 key

当数据库不为空时,返回一个key。

当数据库为空时,返回nil。

rename key newkey

O(1)

修改 key 的名称

改名成功时提示OK,失败时候返回一个错误。

renamenx key newkey

O(1)

仅当 newkey 不存在时,将 key 改名为 newkey

修改成功时,返回1。

如果newkey已经存在,返回0。

type key

O(1)

返回 key 所储存的值的类型

none(key不存在)

string(字符串)

list(列表)

set(集合)

zset(有序集)

hash(哈希表)

?

对key设置查看生存时间

expire,expireat,pexpire,pexpireat;ttl,pttl;persist;

删除key

del

查看key

key pattern

重命名key

rename,renamenx

其他

type,move,dump,exists,

?

字符串string

字符串类型是Redis中最为基础的数据存储类型,它在Redis中是二进制安全的,这便意味着该类型可以接受任何格式的数据,如JPEG图像数据或Json对象描述信息等。在Redis中字符串类型的Value最多可以容纳的数据长度是512M

命令原型

时间复杂度

命令描述

返回值

append key value

O(1)

如果该key已经存在,append命令将参数value的数据追加到已存在value的末尾。如果该key不存在,append命令将会创建一个新的key/value。

追加后value的长度。

decr key

O(1)

将指定key的value原子性的递减1。如果该key不存在,其初始值为0,在decr之后其值为-1。如果value的值不能转换为整型值,如hello,该操作将执行失败并返回相应的错误信息。注意:该操作的取值范围是64位有符号整型。

递减后的value值。

incr key

O(1)

将指定key的value原子性的递增1。如果该key不存在,其初始值为0,在incr之后其值为1。如果value的值不能转换为整型值,如hello,该操作将执行失败并返回相应的错误信息。注意:该操作的取值范围是64位有符号整型。

递增后的value值。

decrby key decrement

O(1)

将指定key的value原子性的减少decrement。如果该key不存在,其初始值为0,在decrby之后其值为-decrement。如果value的值不能转换为整型值,如hello,该操作将执行失败并返回相应的错误信息。注意:该操作的取值范围是64位有符号整型。

减少后的value值。

incrby key increment

O(1)

将指定key的value原子性的增加increment。如果该key不存在,其初始值为0,在incrby之后其值为increment。如果value的值不能转换为整型值,如hello,该操作将执行失败并返回相应的错误信息。注意:该操作的取值范围是64位有符号整型。

增加后的value值。

get key

O(1)

获取指定key的value。如果与该key关联的value不是string类型,redis将返回错误信息,因为get命令只能用于获取string value。

与该key相关的value,如果该key不存在,返回nil。

set key value

O(1)

设定该key持有指定的字符串value,如果该key已经存在,则覆盖其原有值。

总是返回"ok"。

get set key value

O(1)

原子性的设置该key为指定的value,同时返回该key的原有值。和get命令一样,该命令也只能处理string value,否则redis将给出相关的错误信息。

返回该key的原有值,如果该key之前并不存在,则返回nil。

strlen key

O(1)

返回指定key的字符值长度,如果value不是string类型,redis将执行失败并给出相关的错误信息。

返回指定key的value字符长度,如果该key不存在,返回0。

setexkey seconds value

O(1)

原子性完成两个操作,一是设置该key的值为指定字符串,同时设置该key在redis服务器中的存活时间(秒数)。该命令主要应用于redis被当做cache服务器使用时。

?

setnxkey value

O(1)

如果指定的key不存在,则设定该key持有指定字符串value,此时其效果等价于set命令。相反,如果该key已经存在,该命令将不做任何操作并返回。

1表示设置成功,否则0。

setrangekey offset value

O(1)

替换指定key的部分字符串值。从offset开始,替换的长度为该命令第三个参数value的字符串长度,其中如果offset的值大于该key的原有值value的字符串长度,redis将会在value的后面补齐(offset - strlen(value))数量的0x00,之后再追加新值。如果该键不存在,该命令会将其原值的长度假设为0,并在其后添补offset个0x00后再追加新值。鉴于字符串value的最大长度为