Hash

Hash是什么? redis的文档解释是
Redis hashes look exactly how one might expect a “hash” to look, with field-value pairs:
实际是一种散列集合结构,结构也如下:
{key} {domain1} {value1} {domain 2} {value2} … {domain n} {valuen}

HMSET key field value [field value …]

同时将多个 field-value (域-值)对设置到哈希表 key 中。
此命令会覆盖哈希表中已存在的域。
如果 key 不存在,一个空哈希表被创建并执行 HMSET 操作。

HSET key field value

将哈希表 key 中的域 field 的值设为 value 。
如果 key 不存在,一个新的哈希表被创建并进行 HSET 操作。
如果域 field 已经存在于哈希表中,旧值将被覆盖。

HSETNX key field value

上述版本的不覆盖set版本 如果存在返回为false

HGET key field

返回哈希表 key 中给定域 field 的值。

HMGET key field [field …]

返回哈希表 key 中,一个或多个给定域的值。
如果给定的域不存在于哈希表,那么返回一个 nil 值。
HSET key field value
将哈希表 key 中的域 field 的值设为 value 。
如果 key 不存在,一个新的哈希表被创建并进行 HSET 操作。
如果域 field 已经存在于哈希表中,旧值将被覆盖。

HGETALL key

返回哈希表 key 中,所有的域和值。
在返回值里,紧跟每个域名(field name)之后是域的值(value),所以返回值的长度是哈希表大
小的两倍。

HINCRBY key field increment

为哈希表 key 中的域 field 的值加上增量 increment 。
增量也可以为负数,相当于对给定域进行减法操作。
如果 key 不存在,一个新的哈希表被创建并执行 HINCRBY 命令。
如果域 field 不存在,那么在执行命令前,域的值被初始化为 0 。

HINCRBYFLOAT key field increment

上面命令的float版本

HINCRBY、HINCRBYFLOAT

上面命令的增加指定增量版本

HLEN key

返回哈希表 key 中域的数量。

HKEYS key/HVALS key

返回哈希表 key 中的所有域/值。

List

是一种线性的集合结构,支持常见的push/pop等操作

LPOP/LPUSH

弹入弹出

BLPOP/BLPUSH

阻塞版弹出/弹入原语
可以在最后加入超时时间

BRPOP/BRPOP

弹出List尾部元素,在尾部弹入

LINDEX key index

返回列表 key 中,下标为 index 的元素。
下标

LINSERT key BEFORE|AFTER pivot value

将值 value 插入到列表 key 当中,位于值 pivot 之前或之后。
当 pivot 不存在于列表 key 时,不执行任何操作。
当 key 不存在时, key 被视为空列表,不执行任何操作。
如果 key 不是列表类型,返回一个错误。

LRANGE key start stop

返回列表 key 中指定区间内的元素,区间以偏移量 start 和 stop 指定。

LREM key count value

根据参数 count 的值,移除列表中与参数 value 相等的元素。

LSET key index value

将列表 key 下标为 index 的元素的值设置为 value 。
当 index 参数超出范围,或对一个空列表( key 不存在)进行 LSET 时,返回一个错误。

LTRIM key start stop

对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的
元素都将被删除。

SET

Redis Sets are unordered collections of strings. The SADD command adds new elements to a set. It’s also possible to do a number of other operations against sets like testing if a given element already exists, performing the intersection, union or difference between multiple sets, and so forth.

SADD key member [member …]

将一个或多个 member 元素加入到集合 key 当中,已经存在于集合的 member 元素将被忽
略。

SCARD key

集合中元素的数量。

SDIFF key [key …]

返回一个集合的全部成员,该集合是所有给定集合之间的差(补)集。
不存在的 key 被视为空集。

SDIFFSTORE destination key [key …]

上一个命令的保留到destination集合的版本

SINTER key [key …]

返回一个集合的全部成员,该集合是所有给定集合的交集。
不存在的 key 被视为空集。
当给定集合当中有一个空集时,结果也为空集(根据集合运算定律)。.

SINTERSTORE destination key [key …]

上一个命令的保留到destination集合的版本

SUNION key [key …]

返回一个集合的全部成员,该集合是所有给定集合的并集。
不存在的 key 被视为空集。

SUNIONSTORE destination key [key …]

上一个命令的保留到destination集合的版本

SISMEMBER key member

判断 member 元素是否集合 key 的成员。

SMEMBERS key

返回集合 key 中的所有成员。
不存在的 key 被视为空集合。

SMOVE source destination member

将 member 元素从 source 集合移动到 destination 集合。

SRANDMEMBER key [count]

如果命令执行时,只提供了 key 参数,那么返回集合中的一个随机元素。

SPOP key

移除并返回集合中的一个随机元素。
如果只想获取一个随机元素,但不想该元素从集合中被移除的话,可以使用
SRANDMEMBER 命令。

SREM key member [member …]

移除集合 key 中的一个或多个 member 元素,不存在的 member 元素会被忽略。
当 key 不是集合类型,返回一个错误。

有序集合 SortedSet

有序集合是一种带Socore的集合,可以根据score进行一些排序,查找工作。

ZADD key score member [[score member] [score member] …]

将一个或多个 member 元素及其 score 值加入到有序集 key 当中。
如果某个 member 已经是有序集的成员,那么更新这个 member 的 score 值,并通过重新
插入这个 member 元素,来保证该 member 在正确的位置上。

ZCARD key

返回有序集 key 的基数。

ZCOUNT key min max

返回有序集 key 中, score 值在 min 和 max 之间(默认包括 score 值等于 min 或
max )的成员的数量。

ZINCRBY key increment member

为有序集 key 的成员 member 的 score 值加上增量 increment 。

ZRANGE key start stop [WITHSCORES]

返回有序集 key 中,指定区间内的成员。
其中成员的位置按 score 值递增(从小到大)来排序。
具有相同 score 值的成员按字典序( lexicographical order )来排列。

ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]

返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成
员。有序集成员按 score 值递增(从小到大)次序排列。

ZRANK key member

返回有序集 key 中成员 member 的排名。其中有序集成员按 score 值递增(从小到大)顺序
排列。

ZREM key member [member …]

移除有序集 key 中的一个或多个成员,不存在的成员将被忽略。
当 key 存在但不是有序集类型时,返回错误。

ZREMRANGEBYRANK key start stop

移除有序集 key 中,指定排名(rank)区间内的所有成员。
区间分别以下标参数 start 和 stop 指出,包含 start 和 stop 在内。

ZREMRANGEBYSCORE key min max

移除有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成
员。

ZREVRANGE key start stop [WITHSCORES]

返回有序集 key 中,指定区间内的成员。
其中成员的位置按 score 值递减(从大到小)来排列。具有相同 score 值的成员按字典序的
逆序( reverse lexicographical order)排列。

ZSCORE key member

返回有序集 key 中,成员 member 的 score 值。
如果 member 元素不是有序集 key 的成员,或 key 不存在,返回 nil 。

ZUNIONSTORE destination numkeys key [key …] [WEIGHTS weight [weight …]]

[AGGREGATE SUM|MIN|MAX]
计算给定的一个或多个有序集的并集,其中给定 key 的数量必须以 numkeys 参数指定,并
将该并集(结果集)储存到 destination 。

ZINTERSTORE destination numkeys key [key …] [WEIGHTS weight [weight …]]

[AGGREGATE SUM|MIN|MAX]
计算给定的一个或多个有序集的交集,其中给定 key 的数量必须以 numkeys 参数指定,并
将该交集(结果集)储存到 destination 。