redis若干命令 中文翻译
-------------------------------------------------------------
redis http://try.redis.io/
--------------------------------------------------------------
Please type HELP for one of these commands: DECR, DECRBY, DEL, EXISTS, EXPIRE, GET, GETSET, HDEL, HEXISTS, HGET, HGETALL, HINCRBY, HKEYS, HLEN, HMGET, HMSET, HSET, HVALS, INCR, INCRBY, KEYS, LINDEX, LLEN, LPOP, LPUSH, LRANGE, LREM, LSET, LTRIM, MGET, MSET, MSETNX, MULTI, PEXPIRE, RENAME, RENAMENX, RPOP, RPOPLPUSH, RPUSH, SADD, SCARD, SDIFF, SDIFFSTORE, SET, SETEX, SETNX, SINTER, SINTERSTORE, SISMEMBER, SMEMBERS, SMOVE, SORT, SPOP, SRANDMEMBER, SREM, SUNION, SUNIONSTORE, TTL, TYPE, ZADD, ZCARD, ZCOUNT, ZINCRBY, ZRANGE, ZRANGEBYSCORE, ZRANK, ZREM, ZREMRANGEBYSCORE, ZREVRANGE, ZSCORE
==============================================================================
DECR键
DECR key
时间复杂度:O(1)
描述:将存储在密钥上的数字增加或减少一。 如果键不存在或包含错误类型的值,则在执行递增或递减操作之前,请将键设置为“ 0”。
INCRBY和DECRBY的工作方式与INCR和DECR相同,但要增加/减少1,则增加/减少是整数。
INCR命令限于64位有符号整数。
返回值:
整数回复,此命令将在递增或递减后以key的新值进行回复。
--------------------------------------------------------------------------
DECRBY键整数
DECRBY key integer
时间复杂度:O(1)
描述:将存储在密钥上的数字增加或减少一。 如果键不存在或包含错误类型的值,则在执行递增或递减操作之前,请将键设置为“ 0”。
INCRBY和DECRBY的工作方式与INCR和DECR相同,但要增加/减少1,则增加/减少是整数。
INCR命令限于64位有符号整数。
返回值:
整数回复,此命令将在递增或递减后以key的新值进行回复。
--------------------------------------------------------------------------
DEL key1 key2 ... keyN
时间复杂度:O(1)
描述:删除指定的键。 如果给定的键不存在,则不会对此键执行任何操作。 该命令返回删除的键的数量。
返回值:
如果删除了一个或多个键,则大于0的整数。
如果指定的键不存在,则为0。
--------------------------------------------------------------------------
EXISTS键
EXISTS key
时间复杂度:O(1)
描述:测试指定的密钥是否存在。 如果键存在,则命令返回“ 1”,否则返回“ 0”。 请注意,即使将键设置为空字符串也将返回“ 1”。
返回值:
如果密钥存在,则为1。
如果密钥不存在,则为0。
--------------------------------------------------------------------------
EXPIRE关键秒
EXPIRE key seconds
时间复杂度O(1)
描述设置密钥超时。 超时到期后,密钥将自动删除。 在Redis术语中,通常将具有关联超时的键称为可变键。 有关更多信息,请阅读官方文档。
RETURN VALUE整数回复,特别是:
如果设置了超时,则为1。
如果密钥不存在或无法设置超时,则为0。
--------------------------------------------------------------------------
GET键
GET key
时间复杂度:O(1)
描述:获取指定键的值。 如果键不存在,则返回特殊值“ nil”。 如果存储在key处的值不是字符串,则返回错误,因为GET仅能处理字符串值。
返回值:批量回复
--------------------------------------------------------------------------
GETSET键值
GETSET key value
时间复杂度:O(1)
说明:GETSET是原子设置此值并返回旧值命令。 将key设置为字符串值,并返回存储在key处的旧值。 字符串不能超过1073741824字节(1 GB)。
返回值:批量回复
设计模式:GETSET可与INCR一起用于在给定条件出现时通过原子复位进行计数。 例如,每次发生某个事件时,进程可能会针对密钥mycounter调用INCR,但我们有时需要获取计数器的值,并使用GETSET mycounter 0将其自动重置为零。
--------------------------------------------------------------------------
HDEL关键字段
HDEL key field
时间复杂度:O(1)
描述:从键处存储的哈希中删除指定的字段。
如果该字段存在于哈希中,则将其返回并返回1,否则返回0,并且不执行任何操作。
返回值:整数回复
--------------------------------------------------------------------------
HEXISTS关键字段
HEXISTS key field
时间复杂度:O(1)
描述:如果存储在键处的哈希值包含指定字段,则返回1。
如果找不到密钥或该字段不存在,则返回0。
返回值:整数回复
--------------------------------------------------------------------------
HGET关键字段
HGET key field
时间复杂度:O(1)
描述:如果键包含哈希,则检索与指定字段关联的值。
如果找不到该字段或该键不存在,则返回一个特殊的“ nil”值。
返回值:批量回复
--------------------------------------------------------------------------
HKEYS键
HVALS键
HGETALL键
HKEYS key
HVALS key
HGETALL key
时间复杂度:O(N),其中N是条目总数
描述:HKEYS返回包含在哈希中的所有字段名称,HVALS返回所有关联的值,而HGETALL返回字段和值的形式为field1,value1,field2,value2,...,fieldN,valueN。
返回值:多批量回复
--------------------------------------------------------------------------
HINCRBY关键字段值
HINCRBY key field value
时间复杂度:O(1)
描述:按值增加存储在键处哈希值中字段中的数字。 如果密钥不存在,则会创建一个包含哈希的新密钥。 如果字段不存在或不包含字符串,则在应用操作之前将值设置为0。
HINCRBY支持的值范围限制为64位带符号整数。
返回值:整数回复-增量操作后字段中的新值。
--------------------------------------------------------------------------
HLEN键
HLEN key
时间复杂度:O(1)
描述:返回键处存储的哈希中包含的条目(字段)数。 如果指定的键不存在,则假定为空哈希,则返回0。
返回值:整数回复
--------------------------------------------------------------------------
HMGET关键字段[field ...]
HMGET key field [field ...]
时间复杂度O(N),其中N是请求的字段数。
描述
返回与存储在key处的哈希中的指定字段关联的值。
对于哈希中不存在的每个字段,将返回nil值。 由于不存在的键被视为空哈希,因此针对不存在的键运行HMGET将返回nil值的列表。
返回值
多批量答复:与给定字段关联的值列表,其顺序与请求顺序相同。
--------------------------------------------------------------------------
HMSET键字段值[字段值...]
HMSET key field value [field value ...]
时间复杂度O(N),其中N是要设置的字段数。
描述将指定字段设置为存储在key处的哈希中的相应值。 此命令将覆盖哈希中的所有现有字段。 如果密钥不存在,则会创建一个包含哈希的新密钥。
RETURN VALUE状态码回复
--------------------------------------------------------------------------
HSET关键字段值
HSET key field value
时间复杂度:O(1)
描述:将指定的哈希字段设置为指定的值。
如果密钥不存在,则会创建一个包含哈希的新密钥。
如果该字段已经存在,并且HSET刚刚生成了该值的更新,则返回0,否则,如果创建了新字段,则返回1。
返回值:整数回复
--------------------------------------------------------------------------
INCR键
INCRBY键整数
DECR键
DECRBY键整数
INCR key
INCRBY key integer
DECR key
DECRBY key integer
时间复杂度:O(1)
描述:将存储在密钥上的数字增加或减少一。 如果键不存在或包含错误类型的值,则在执行递增或递减操作之前,请将键设置为“ 0”。
INCRBY和DECRBY的工作方式与INCR和DECR相同,但要增加/减少1,则增加/减少是整数。
INCR命令限于64位有符号整数。
返回值:整数回复,此命令将在递增或递减后以key的新值进行回复。
--------------------------------------------------------------------------
按键模式
KEYS pattern
时间复杂度:O(n)(其中n是数据库中的键数,并假设键和模式的长度受限制)
描述:将所有与glob样式模式匹配的键作为空格分隔的字符串返回。 例如,如果数据库中有键“ foo”和“ foobar”,则命令“ KEYS foo *”将返回“ foo foobar”。
全局样式样式示例:
h?llo将和你好hello hhllo比赛
h * llo将匹配hllo heeeello
h [ae] llo将匹配hello和hello,但不匹配hillo
如果要逐字匹配特殊字符,请使用\来转义特殊字符。
返回值:批量答复,特别是用空格分隔的键列表形式的字符串。 请注意,大多数客户端库将返回键数组,而不是带有空格分隔键的单个字符串(也就是说,通常在客户端库中执行“”分隔)。
--------------------------------------------------------------------------
LINDEX键索引
LINDEX key index
时间复杂度:O(n)(其中n为列表的长度)
描述:返回存储在指定键处的列表的指定元素。 0是第一个元素,1是第二个元素,依此类推。 支持负索引,例如-1是最后一个元素,-2是倒数第二个,依此类推。
如果存储在key处的值不是列表类型,则返回错误。 如果索引超出范围,则返回一个空字符串。
请注意,即使平均时间复杂度为O(n),要求列表的第一个或最后一个元素也为O(1)。
返回值:包含请求元素的批量答复。
--------------------------------------------------------------------------
LLEN键
LLEN key
时间复杂度:O(1)
描述:返回存储在指定键处的列表的长度。 如果键不存在,则返回零(与空列表相同的行为)。 如果存储在key处的值不是列表,则返回错误。
返回值:列表长度的整数回复。
--------------------------------------------------------------------------
LPOP密钥
LPOP key
时间复杂度:O(1)
说明:以原子方式返回并删除列表的第一个(LPOP)或最后一个(RPOP)元素。 例如,如果列表包含元素“ a”,“ b”,“ c”,则LPOP将返回“ a”,并且列表将变为“ b”,“ c”。
如果键不存在或列表已经为空,则返回特殊值“ nil”。
返回值:批量答复。
--------------------------------------------------------------------------
LPUSH键串
LPUSH key string
时间复杂度:O(1)
描述:将字符串值添加到存储在键处的列表的开头(RPUSH)或结尾(LPUSH)。 如果键不存在,则会在追加操作之前创建一个空列表。 如果键存在但不是列表,则返回错误。
返回值:状态码答复
--------------------------------------------------------------------------
LRANGE键开始结束
LRANGE key start end
时间复杂度:O(n)(其中n为范围的长度)
描述:返回存储在指定键处的列表的指定元素。 开始和结束是从零开始的索引。 0是列表的第一个元素(列表头),1是下一个元素,依此类推。
例如,LRANGE foobar 0 2将返回列表的前三个元素。
start和end也可以是负数,指示与列表末尾的偏移量。 例如,-1是列表的最后一个元素,-2是倒数第二个元素,依此类推。
索引超出范围不会产生错误:如果start在列表的末尾,或者start> end,则返回一个空列表。 如果end在列表的末尾,则Redis会像列表的最后一个元素一样威胁它。
返回值:指定范围内的元素列表的多批量答复。
--------------------------------------------------------------------------
LREM密钥计数值
LREM key count value
时间复杂度:O(N)(其中N为列表的长度)
描述:从列表中删除值元素的第一次计数。 如果count为零,则删除所有元素。 如果count是负数,则从尾部到头部删除元素,而是从头到尾去掉,这是正常的行为。 因此,例如,具有count -2和hello作为要从列表中删除的值(a,b,c,hello,x,hello,hello)的LREM将优先处理列表(a,b,c,hello,x)。 删除的元素数以整数形式返回,有关返回值的更多信息,请参见下文。 请注意,LREM将不存在的键视为空列表,因此针对不存在的键的LREM将始终返回0。
返回值:如果操作成功,则整数答复包含已删除元素的数量。
--------------------------------------------------------------------------
LSET键索引值
时间复杂度:O(N)(其中N为列表的长度)
描述:使用新值在index处设置list元素(有关index参数的信息,请参见LINDEX)。 超出范围的索引将生成错误。 请注意,将列表的第一个或最后一个元素设置为O(1)。
与其他接受索引的列表命令相似,对于从列表末尾开始的访问元素,索引可以为负。 因此,-1是最后一个元素,-2是倒数第二个,依此类推。
返回值:状态码答复。
--------------------------------------------------------------------------
LTRIM键开始结束
LTRIM key start end
时间复杂度:O(n)(其中n为列表的len-范围的len)
描述:修剪现有列表,使其仅包含指定范围的指定元素。开始和结束是从零开始的索引。 0是列表的第一个元素(列表头),1是下一个元素,依此类推。
例如,LTRIM foobar 0 2将修改存储在foobar键处的列表,以便仅保留列表的前三个元素。
start和end也可以是负数,指示与列表末尾的偏移量。例如,-1是列表的最后一个元素,-2是倒数第二个元素,依此类推。
索引超出范围不会产生错误:如果start在列表的末尾,或者start> end,则留下一个空列表作为值。如果结束于列表的末尾,则Redis将像列表的最后一个元素一样威胁它。
提示:LTRIM与LPUSH / RPUSH一起使用是显而易见的。例如:
LPUSH mylist <someelement> LTRIM mylist 0 99
上面的两个命令将把列表中的元素压入列表,以确保列表没有限制不会增长。例如,当使用Redis存储日志时,这非常有用。重要的是要注意,当以这种方式使用LTRIM时,它是O(1)运算,因为在通常情况下,列表的尾部仅删除一个元素。
返回值:状态码答复。
--------------------------------------------------------------------------
MGET key1 key2 ... keyN
时间复杂度:每个键为O(1)
描述:获取所有指定键的值。 如果一个或多个键不存在或不是String类型,则返回'nil'值而不是指定键的值,但是操作永远不会失败。
返回值:多批回复
--------------------------------------------------------------------------
MSET key1值1 key2值2 ... keyN值N
时间复杂度:O(1)设置每个键
描述:
将各个键设置为各个值。 MSET将用新值替换旧值,而MSETNX将根本不执行任何操作,即使仅存在一个键也是如此。
由于这种语义,可以使用MSETNX来设置表示唯一逻辑对象的不同字段的不同键,以确保所有字段都设置或根本不设置。
MSET和MSETNX都是原子操作。 这意味着,例如,如果密钥A和B被修改,则与Redis交谈的另一个客户端可以一次看到对A和B的更改,或者根本看不到更改。
返回值:状态代码基本上回复+ OK,因为MSET不会失败
--------------------------------------------------------------------------
MSETNX key1值1 key2值2 ... keyN值N
时间复杂度:O(1)设置每个键
描述:
将各个键设置为各个值。 MSET将用新值替换旧值,而MSETNX将根本不执行任何操作,即使仅存在一个键也是如此。
由于这种语义,可以使用MSETNX来设置表示唯一逻辑对象的不同字段的不同键,以确保所有字段都设置或根本不设置。
MSET和MSETNX都是原子操作。 这意味着,例如,如果密钥A和B被修改,则与Redis交谈的另一个客户端可以一次看到对A和B的更改,或者根本看不到更改。
返回值:整数回复,特别是:
如果所有键均已设置,则为1
如果未设置密钥(至少一个密钥已经存在),则为0
--------------------------------------------------------------------------
多
MULTI
标记事务块的开始。 随后的命令将排队使用EXEC进行原子执行。
返回值
状态码回复:总是可以。
--------------------------------------------------------------------------
PEXPIRE密钥毫秒
PEXPIRE key milliseconds
时间复杂度O(1)
描述该命令的工作原理与EXPIRE完全相同,但是密钥的生存时间以毫秒而不是秒为单位指定。
RETURN VALUE整数回复,特别是:
如果设置了超时,则为1。
如果密钥不存在或无法设置超时,则为0。
--------------------------------------------------------------------------
重命名旧键newkey
RENAME oldkey newkey
时间复杂度:O(1)
描述:以原子方式将密钥oldkey重命名为newkey。 如果源名称和目标名称相同,则返回错误。 如果newkey已经存在,它将被覆盖。
返回值:状态码重复
--------------------------------------------------------------------------
RENAMENX旧键newkey
RENAMENX oldkey newkey
时间复杂度:O(1)
描述:将oldkey重命名为newkey,但是如果目标键newkey已经存在,则失败。
返回值:整数回复,特别是:
1,如果密钥已重命名
如果目标键已经存在,则为0
--------------------------------------------------------------------------
RPOP密钥
RPOP key
时间复杂度:O(1)
说明:以原子方式返回并删除列表的第一个(LPOP)或最后一个(RPOP)元素。 例如,如果列表包含元素“ a”,“ b”,“ c”,则LPOP将返回“ a”,并且列表将变为“ b”,“ c”。
如果键不存在或列表已经为空,则返回特殊值“ nil”。
返回值:批量答复。
--------------------------------------------------------------------------
RPOPLPUSH srckey dstkey
时间复杂度:O(1)
说明:以原子方式返回并删除srckey列表的最后一个(尾)元素,并将该元素推入dstkey列表的第一个(头)元素。 例如,如果源列表包含元素“ a”,“ b”,“ c”,而目标列表包含元素“ foo”,“ bar”,则在RPOPLPUSH命令之后,两个列表的内容将为“ a”, “ b”和“ c”,“ foo”,“ bar”。
如果键不存在或列表已经为空,则返回特殊值“ nil”。 如果srckey和dstkey相同,则该操作等效于从列表中删除最后一个元素并将其作为列表的第一个元素,因此它是“列表轮换”命令。
返回值:批量答复。
--------------------------------------------------------------------------
RPUSH密钥字符串
RPUSH key string
时间复杂度:O(1)
描述:将字符串值添加到存储在键处的列表的开头(RPUSH)或结尾(LPUSH)。 如果键不存在,则会在追加操作之前创建一个空列表。 如果键存在但不是列表,则返回错误。
返回值:状态码答复
--------------------------------------------------------------------------
SADD关键成员
SADD key member
时间复杂度:O(1)
描述:将指定的成员添加到存储在key的设置值中。 如果member已经是集合的成员,则不执行任何操作。 如果key不存在,则创建一个具有指定成员作为唯一成员的新集合。 如果键存在但不保存设置值,则返回错误。
返回值:整数回复,特别是:
1,如果添加了新元素
如果该元素已经是集合的成员,则为0
--------------------------------------------------------------------------
SCARD键
SCARD key
时间复杂度:O(1)
描述:返回设置的基数(元素数)。 如果键不存在,则返回0,例如对于空集。
返回值:该集合的基数(元素数)为整数。
--------------------------------------------------------------------------
SDIFF key1 key2 ... keyN
时间复杂度:O(N),N为所有集合中元素的总数
描述:返回由于提供的第一个集合与所有后续集合之间的差异而导致的集合成员。 例:
键1 = x,a,b,c
键2 = c
键3 = a,d
SDIFF key1,key2,key3 => x,b
不存在的键被视为空集。
返回值:多批量答复,特别是常见元素的列表。
--------------------------------------------------------------------------
SDIFFSTORE dstkey key1 key2 ... keyN
时间复杂度:O(N),其中N是所有提供的集合中元素的总数
描述:此命令的工作方式与SDIFF完全相同,但不会返回结果集,而是将其存储在dstkey中。
返回值:状态码答复
--------------------------------------------------------------------------
设置键值
SET key value
时间复杂度:O(1)
描述:设置键以保存字符串值。 如果键已经包含一个值,则无论其类型如何,它都会被覆盖。 成功进行SET操作后,与密钥关联的任何先前生存时间将被丢弃。
选件
EX seconds-设置指定的到期时间,以秒为单位。
PX毫秒-设置指定的到期时间(以毫秒为单位)。
NX-仅在不存在的情况下设置密钥。
XX-仅设置密钥(如果已存在)。
返回值:状态代码回复:如果SET执行正确,则为OK。 空多批量回复:如果用户指定了NX或XX选项但不满足条件,则如果未执行SET操作,则返回空批量回复。
--------------------------------------------------------------------------
SETEX关键秒值
SETEX key seconds value
复杂度O(1)
描述设置键以保留字符串值,并设置键为给定秒数后超时。 此命令等效于执行以下命令:
设置mykey值
过期mykey秒
SETEX是原子的,可以通过在MULTI / EXEC块中使用前两个命令来重现。 它是给定操作序列的更快替代方法,因为当Redis用作缓存时,此操作非常常见。
如果秒数无效,则返回错误。
返回值状态回复
--------------------------------------------------------------------------
SETNX 键值
SETNX key value
时间复杂度:O(1)
描述:SETNX的工作方式与SET完全相同,唯一的区别是,如果键已经存在,则不执行任何操作。 SETNX的实际含义是“如果不存在则设置”。
返回值:整数回复,特别是:
如果设置了键,则为1
如果未设置密钥,则为0
--------------------------------------------------------------------------
烧结机key1 key2 ... keyN
SINTER key1 key2 ... keyN
时间复杂度:O(N * M)最坏的情况,其中N是最小集合的基数,M是集合数
描述:返回集合中所有成员在指定键处相交的集合的成员。 像在LRANGE中一样,结果作为多批回复发送到客户端(有关更多信息,请参见协议规范)。 如果仅指定单个键,则此命令产生的结果与SMEMBERS相同。 实际上,SMEMBERS只是SINTERSECT的语法糖。
不存在的键被视为空集,因此,如果其中一个键缺失,则会返回一个空集(因为与空集的交集始终为空集)。
返回值:多批量答复,特别是常见元素的列表。
--------------------------------------------------------------------------
INTERSTORE dstkey key1 key2 ... keyN
时间复杂度:O(N * M)最坏的情况,其中N是最小集合的基数,M是集合数
描述:此命令的工作原理与SINTER完全相同,但未返回结果集,而是将其作为dstkey。
返回值:状态码答复
--------------------------------------------------------------------------
SISMEMBER关键成员
SISMEMBER key member
时间复杂度:O(1)
描述:如果member是存储在key的集合的成员,则返回1,否则返回0。
返回值:整数回复,特别是:
如果元素是集合的成员,则为1
如果元素不是集合的成员,则为0;或者,如果键不存在,则为0
--------------------------------------------------------------------------
SMEMBERS密钥
SMEMBERS key
时间复杂度:O(N)
描述:返回存储在键处的设置值的所有成员(元素)。 这只是SINTERSECT的语法胶。
返回值:多批回复
--------------------------------------------------------------------------
SMOVE srckey dstkey成员
SMOVE srckey dstkey member
时间复杂度:O(1)
描述:将指定成员从srckey处的集合移动到dstkey处的集合。 此操作是原子操作,在任何给定的时刻,元素都将显示在用于访问客户端的源或目标集中。
如果源集不存在或不包含指定的元素,则不执行任何操作,并返回零,否则将元素从源集中删除并添加到目标集。 成功后,即使元素已经存在于目标集中,也将返回一个。
如果源键或目标键包含非Set值,则会引发错误。
返回值:整数回复,特别是:
如果元素已移动,则为1
如果在第一组上未找到该元素并且未执行任何操作,则为0
--------------------------------------------------------------------------
排序键[按模式] [限制开始计数] [获取模式] [ASC | DESC] [ALPHA] [存储dstkey]
SORT key [BY pattern] [LIMIT start count] [GET pattern] [ASC|DESC] [ALPHA] [STORE dstkey]
描述:对键的“列表”,“集合”或“排序的集合”值中包含的元素进行排序。默认情况下,排序是数字形式的,元素被比较为双精度浮点数。这是SORT的最简单形式:SORT mylist
假设mylist包含数字列表,则返回值将是按从最小到最大的顺序排列的数字列表。为了获得相反的排序,请使用DESC:SORT mylist DESC
还支持ASC选项,但它是默认选项,因此您实际上并不需要它。如果要按字典顺序排序,请使用ALPHA。请注意,假设您为LC_COLLATE环境变量设置了正确的值,则Redis可以识别utf-8。
排序能够使用LIMIT选项限制返回的元素数:SORT mylist LIMIT 0 10
在上面的示例中,SORT将仅从第一个元素开始(返回从零开始)仅返回10个元素。几乎所有的排序选项都可以混合在一起。例如,命令:SORT mylist LIMIT 0 10 ALPHA DESC
将按字典顺序对mylist进行降序排序,仅返回前10个元素。
有时,您想使用外部键作为权重对元素进行排序以进行比较,而不是比较实际的“列表集”或“排序集”元素。例如,列表mylist可能包含元素1、2、3、4,它们只是存储在object_1,object_2,object_3和object_4上的对象的唯一ID,而权重weight_1,weight_2,weight_3和weight_4可以包含我们想要的权重用于对我们的对象标识符列表进行排序。我们可以使用以下命令:
按外键排序:
按权重排序我的清单mylist
BY选项采用一种模式(在我们的示例中为weight_ *),该模式用于生成用于排序的权重的键名。使用列表中元素的实际值(在我们的示例中为1,2,3,4)替换首次出现的*来获得权重键名称。
我们前面的示例将仅返回已排序的ID。通常需要对实际的对象进行排序(在示例中为object_1,...,object_4)。我们可以使用以下命令进行操作:
检索外部键:
按重量排序我的清单mylist *获取对象*
请注意,GET可以多次使用,以便为原始List,Set或Sorted Set中的每个元素获取更多键。
由于Redis> = 1.1,因此还可以使用特殊的#模式来获取列表元素本身:SORT mylist BY weight * GET object * GET#
存储排序操作的结果:
默认情况下,SORT返回排序后的元素作为其返回值。改用STORE选项返回元素SORT将把这些元素存储为Redis List在指定键中。示例:按weight_ * STORE结果键排序我的清单mylist
使用SORT ... STORE的一种有趣模式在于将EXPIRE超时与结果键相关联,以便在排序操作的结果可以缓存一段时间的应用程序中,其他客户端将使用缓存的列表来代替对每个请求调用SORT 。当密钥超时时,可以再次使用SORT ... STORE创建缓存的更新版本。
请注意,实施此模式很重要,要避免多个客户端尝试同时重建缓存的缓存版本,因此应实施某种形式的锁定(例如,使用SETNX)。
返回值:包含已排序元素列表的多批量答复。
--------------------------------------------------------------------------
SPOP密钥
SPOP key
时间复杂度:O(1)
描述:从Set中删除一个随机元素,将其作为返回值返回。 如果Set为空或键不存在,则返回nil对象。
SRANDMEMBER命令执行类似的工作,但是返回的元素不会从Set中删除。
返回值:批量回复
--------------------------------------------------------------------------
SRANDMEMBER 键
SRANDMEMBER key
时间复杂度:O(1)
描述:从集合中返回一个随机元素,而不删除该元素。 如果Set为空或键不存在,则返回nil对象。
SPOP命令执行类似的工作,但是从Set中弹出(删除)了返回的元素。
返回值:批量回复
--------------------------------------------------------------------------
SREM关键成员
SREM key member
时间复杂度:O(1)
描述:从键处存储的设置值中删除指定的成员。 如果member不是集合的成员,则不执行任何操作。 如果键没有设置值,则返回错误。
返回值:整数回复,特别是:
如果删除了新元素,则为1
如果新元素不是集合的成员,则为0
--------------------------------------------------------------------------
SUNION key1 key2 ... keyN
时间复杂度:O(N),其中N是所有提供的集合中元素的总数
描述:返回集合中所有成员在指定键处的并集所产生的集合成员。 像在LRANGE中一样,结果作为多批回复发送到客户端(有关更多信息,请参见协议规范)。 如果仅指定单个键,则此命令产生的结果与SMEMBERS相同。
不存在的键被视为空集。
返回值:多批量答复,特别是常见元素的列表。
--------------------------------------------------------------------------
SUNIONSTORE dstkey key1 key2 ... keyN
时间复杂度:O(N),其中N是所有提供的集合中元素的总数
描述:该命令的工作方式与SUNION完全相同,但不会返回结果集,而是将其存储为dstkey。 dstkey中的任何现有值将被覆盖。
返回值:状态码答复
--------------------------------------------------------------------------
TTL键
TTL key
描述:TTL命令返回已设置EXPIRE的键的剩余生存时间(以秒为单位)。 这种自省功能允许Redis客户端检查给定密钥将继续成为数据集一部分的秒数。 如果密钥没有关联的到期时间,则返回-1。 如果密钥不存在,则返回-2。
返回值:整数回复
--------------------------------------------------------------------------
TYPE键
TYPE key
时间复杂度:O(1)
以字符串形式返回键处存储的值的类型。 类型可以是“ none”,“ string”,“ list”,“ set”之一。 如果密钥不存在,则返回“ none”。
返回值
状态码回复,具体为:
如果密钥不存在,则为“ none”
如果键包含字符串值,则为“字符串”
如果键包含列表值,则为“列表”
如果键包含设置值,则为“设置”
--------------------------------------------------------------------------
ZADD关键分数成员
ZADD key score member
时间复杂度:O(log(N)),N为排序集中元素的数量
描述:将具有特殊分数的指定成员添加到存储在key的排序集中。 如果member已经是排序集中的成员,则分数会更新,并且元素会重新插入正确的位置以确保排序。 如果key不存在,则创建一个新的排序集,其中指定的成员为唯一成员。 如果键存在但不包含排序的设置值,则返回错误。
得分值可以是双精度浮点数的字符串表示形式。
有关排序集的介绍,请查看“ Redis数据类型介绍”页面。
返回值:整数回复,特别是:
1,如果添加了新元素
如果该元素已经是排序集中的成员并且分数已更新,则为0
--------------------------------------------------------------------------
ZCARD钥匙
ZCARD key
时间复杂度:O(1)
描述:返回排序后的集合基数(元素数)。 如果键不存在,则返回0,类似于空排序集。
返回值:整数回复,特别是:
集合的基数(元素数),为整数。
--------------------------------------------------------------------------
ZCOUNT键最小最大
ZCOUNT key min max
时间复杂度:O(log(N)+ M),其中N是排序集中的元素数,M是介于最小值和最大值之间的元素数。
描述:返回键中排序集中的元素数,其分数介于最小和最大之间。 最小和最大参数的语义与针对ZRANGEBYSCORE所述的语义相同。
返回值:整数回复:指定分数范围内的元素数。
--------------------------------------------------------------------------
ZINCRBY键增量成员
ZINCRBY key increment member
时间复杂度:O(log(N)),N为排序集中元素的数量
描述:如果成员已存在于排序集中,则将增量添加到其得分中,并相应地更新元素在排序集中的位置。 如果排序集中的成员尚不存在,则将其添加为分数作为增量(即,如果先前的分数实际上为零)。 如果key不存在,则创建一个新的排序集,其中指定的成员为唯一成员。 如果键存在但不包含排序的设置值,则返回错误。
得分值可以是双精度浮点数的字符串表示形式。 可以提供一个负值来执行递减操作。
有关排序集的介绍,请查看“ Redis数据类型介绍”页面。
返回值:整数回复,特别是:
执行增量后成员的分数。
--------------------------------------------------------------------------
ZRANGE键开始结束[WITHSCORES]
ZRANGE key start end [WITHSCORES]
时间复杂度:O(log(N))+ O(M)(N是排序集中的元素数,M是请求的元素数)
描述:在指定的键处返回排序集中的指定元素。使用ZRANGE时,这些元素被认为是从最低得分到最高得分排序的,而使用ZREVRANGE时则按照相反的顺序排序。开始和结束是从零开始的索引。 0是排序集中的第一个元素(使用ZRANGE时得分最低的元素),1是得分的下一个元素,依此类推。
start和end也可以是负数,指示与已排序集合的末尾的偏移量。例如,-1是排序集中的最后一个元素,-2是倒数第二个元素,依此类推。
索引超出范围不会产生错误:如果start超出了排序集的末尾,或者start> end,则返回一个空列表。如果end在排序集的末尾之上,则Redis会像排序集的最后一个元素一样威胁它。
可以将WITHSCORES选项传递给命令,以便不仅返回值,还返回元素的分数。 Redis会将数据作为由value1,score1,value2,score2,...,valueN,scoreN组成的单个列表返回,但是客户端库可以自由返回更合适的数据类型(我们认为这是最好的返回类型命令是一个由两个元素组成的数组Array / Tuple,以保留排序)。
返回值:多批量答复,特别是指定范围内的元素列表。
--------------------------------------------------------------------------
ZRANGEBYSCORE键最小最大[LIMIT offset count](Redis> = 1.1)
ZRANGEBYSCORE键最小值最大值最大值[LIMIT offset count] [WITHSCORES](Redis> = 1.3.4)
ZRANGEBYSCORE key min max [LIMIT offset count] (Redis >= 1.1)
ZRANGEBYSCORE key min max [LIMIT offset count] [WITHSCORES] (Redis >= 1.3.4)
TIME COMPL
时间复杂度:O(log(N))+ O(M),N为排序集中的元素数,M为命令返回的元素数,因此,如果M为常数(例如,您总是要求输入带有LIMIT的前十个元素)可以考虑为O(log(N))
描述:返回键中排序集中的所有元素,其分值在min和max之间(包括分值等于min或max的元素)。
具有相同分数的元素按字典顺序返回为ASCII字符串(这来自Redis排序集的属性,不涉及进一步的计算)。
使用可选的LIMIT可以以类似于SQL的方式仅获取一系列匹配元素。请注意,如果偏移量很大,则命令需要遍历偏移量元素的列表,这加起来就是O(M)图。
返回值:多批答复,特别是指定分数范围内的元素列表。
--------------------------------------------------------------------------
ZRANK关键成员
ZRANK key member
时间复杂度:O(log(N))
描述:返回存储在键中的排序集中成员的等级,其得分从低到高排序。 等级(或索引)基于0,这意味着得分最低的成员的等级为0。
返回值:
如果成员存在于排序集中,则整数回复:成员的等级。
如果成员不存在于排序集中或键不存在,则批量答复:无。
--------------------------------------------------------------------------
ZREM关键成员
ZREM key member
时间复杂度:O(log(N)),N为排序集中元素的数量
描述:从存储在key的排序的设置值中删除指定的成员。 如果member不是集合的成员,则不执行任何操作。 如果键不具有设定值,则返回错误。
返回值:整数回复,特别是:
如果删除了新元素,则为1
如果新元素不是集合的成员,则为0
--------------------------------------------------------------------------
ZREMRANGEBYSCORE键最小值最大值
ZREMRANGEBYSCORE key min max
时间复杂度:O(log(N))+ O(M),其中N是排序集中的元素数,M是该操作删除的元素数
描述:删除键在排序集中的所有元素,其分数在最小和最大之间(包括分数等于最小或最大的元素)。
返回值:整数回复,特别是删除的元素数。
--------------------------------------------------------------------------
ZREVRANGE密钥开始结束[WITHSCORES]
ZREVRANGE key start end [WITHSCORES]
时间复杂度:O(log(N))+ O(M)(N是排序集中的元素数,M是请求的元素数)
描述:在指定的键处返回排序集中的指定元素。使用ZRANGE时,这些元素被认为是从最低得分到最高得分排序的,而使用ZREVRANGE时则按照相反的顺序排序。开始和结束是从零开始的索引。 0是排序集中的第一个元素(使用ZRANGE时得分最低的元素),1是得分的下一个元素,依此类推。
start和end也可以是负数,指示与已排序集合的末尾的偏移量。例如,-1是排序集中的最后一个元素,-2是倒数第二个元素,依此类推。
索引超出范围不会产生错误:如果start超出了排序集的末尾,或者start> end,则返回一个空列表。如果end在排序集的末尾之上,则Redis会像排序集的最后一个元素一样威胁它。
可以将WITHSCORES选项传递给命令,以便不仅返回值,还返回元素的分数。 Redis会将数据作为由value1,score1,value2,score2,...,valueN,scoreN组成的单个列表返回,但是客户端库可以自由返回更合适的数据类型(我们认为这是最好的返回类型命令是一个由两个元素组成的数组Array / Tuple,以保留排序)。
返回值:多批量答复,特别是指定范围内的元素列表。
--------------------------------------------------------------------------
ZSCORE关键成员
ZSCORE key member
时间复杂度:O(1)
描述:返回键处排序集的指定元素的分数。 如果指定的元素在排序集中不存在,或者键根本不存在,则返回特殊的“ nil”值。
返回值:批量答复,成员的分数(双精度浮点数),以字符串表示。
--------------------------------------------------------------------------