字符串 字符串 SET Key Value 会覆盖原有的value SET Key Value EX 10 SETNX 成功1 失败0 EXISTS 存在1 不存在0 SET key value 非原子性操作 EXPIRE key seconds # 设置生存时间 原子操作atomic SETEX 秒 PSETEX 毫秒 GET GETSET 获取key原有的值并SET对应的value STRLEN 获取key对应value的长度 SETRANGE key offset value 从偏移量开始进行覆盖 如果偏移量之前为空 则用零字节 \x00代替 GETRANGE key start end 截取-1代表末尾 INCR key 自增 如果键 key 不存在, 那么它的值会先被初始化为 0 , 然后再执行 INCR 命令 如果键 key 储存的值不能被解释为数字, 那么 INCR 命令将返回一个错误。 INCR key 在key基础上进行运算操作,若不存在key,则从0开始进行运算。 INCRBY key increment INCRBYFLOAT key floatIncrement 浮点操作 DECR key 自减 DECRBY key decrement 原子性操作atomic MSET 同时为多个键设置值 MSET name zhangsan sex man age 18 address china MGET name sex age address MSETNX 当且仅当所有给定键都不存在时, 为所有给定键设置值。 即使只有一个给定键已经存在, MSETNX 命令也会拒绝执行对所有键的设置操作 哈希表 哈希表 HSET 表名 key value HSETNX HGET HEXISTS 表名 key HDEL HLEN HSTRLEN HINCRBY 表名 key increment HINCRBYFLOAT HMSET HMGET HKEYS key HGETALL 列表 列表 LPUSH key elments… 返回key的长度 LPUSHX key elemnts… 当key不存在的时候 LPUSHX 什么也不做 RPUSH key elments… 返回key长度 RPUSHX key elements LPOP key 移除列表的头元素 RPOP key 移除列表的尾元素 RPOPLPUSH 在一个原子时间内,执行以下两个动作 将列表 source 中的最后一个元素(尾元素)弹出,并返回给客户端。 将 source 弹出的元素插入到列表 destination ,作为 destination 列表的的头元素。 安全的队列 使用 RPOPLPUSH 命令(或者它的阻塞版本 BRPOPLPUSH source destination timeout )可以解决这个问题:因为它不仅返回一个消息,同时还将这个消息添加到另一个备份列表当中,如果一切正常的话,当一个客户端完成某个消息的处理之后,可以用 LREM key count value 命令将这个消息从备份表删除。还可以添加一个客户端专门用于监视备份表,它自动地将超过一定处理时限的消息重新放入队列中去(负责处理该消息的客户端可能已经崩溃),这样就不会丢失任何消息了。 循环列表 通过使用相同的 key 作为 RPOPLPUSH 命令的两个参数,客户端可以用一个接一个地获取列表元素的方式,取得列表的所有元素,而不必像 LRANGE key start stop 命令那样一下子将所有列表元素都从服务器传送到客户端中(两种方式的总复杂度都是 O(N))。 以上的模式甚至在以下的两个情况下也能正常工作: 有多个客户端同时对同一个列表进行旋转(rotating),它们获取不同的元素,直到所有元素都被读取完,之后又从头开始。 有客户端在向列表尾部(右边)添加新元素。 这个模式使得我们可以很容易实现这样一类系统:有 N 个客户端,需要连续不断地对一些元素进行处理,而且处理的过程必须尽可能地快。一个典型的例子就是服务器的监控程序:它们需要在尽可能短的时间内,并行地检查一组网站,确保它们的可访问性。 注意,使用这个模式的客户端是易于扩展(scala)且安全(reliable)的,因为就算接收到元素的客户端失败,元素还是保存在列表里面,不会丢失,等到下个迭代来临的时候,别的客户端又可以继续处理这些元素了。 LREM key count value count 的值可以是以下几种: count > 0 : 从表头开始向表尾搜索,移除与 value 相等的元素,数量为 count 。 count < 0 : 从表尾开始向表头搜索,移除与 value 相等的元素,数量为 count 的绝对值。 count = 0 : 移除表中所有与 value 相等的值。 LLEN key LINDEX key index 返回对应下标的value LINSERT key BEFORE|AFTER piovt element LSET key index value 将列表 key 下标为 index 的元素的值设置为 value 。 LTRIM key start end BRPOPLPUSH 集合 集合 SADD key value… SISMEMBER key value 判断元素是否在集合 SPOP key 随机移除一个元素 SRANDMEMBER key count 返回key集合中count个不相同的元素 如果 count 为正数,且小于集合基数,那么命令返回一个包含 count 个元素的数组,数组中的元素各不相同。如果 count 大于等于集合基数,那么返回整个集合。 如果 count 为负数,那么命令返回一个数组,数组中的元素可能会重复出现多次,而数组的长度为 count 的绝对值。 SMOVE soure target value 把value从原集合移动到目标集合 SCARD key 返回集合元素的数量 SMEMBERS key 返回集合所有的元素 SINTER key key 返回两个集合的交集 SINTERSTORE target key key 把两个集合的交集给target SUNION key key 返回所有集合的并集 SUNIONSTORE target key key 把两个集合的并集给target SDIFF key key1 key2… 返回key与其他key之间的差集 SDIFFSTORE target key1 key2… 把集合的差集给target 有序集合 有序集合 ZADD key score vlaue ZSCORE key value 返回key 中 value对应的score ZINCRBY key increment value key中的value 增加increment ZCARD key 返回key中有多少个value ZCOUNT key min max 返回key中符合min max之间的数量 闭区间 ZRANGE key start stop WITHSCORES ZREVRANGE key start stop WITHSCORES ZRANGERBYSCORE ZRANGEBYSCORE rank -inf +inf [withscores] ZREVRANGEBYSCORE 与 ZRANGERBYSCORE ZREVRANGEBYSCORE rank +inf -inf ZRANK key value 显示对应value在key中的排名 从小到大 返回值为value的下标 ZRANK rank player3 ZREVRANK rank player3 ZREM key value ZREM rank player ZREMRANGEBYRANK key start stop 按照排名移除元素 ZREMRANGEBYRANK rank 0 1 ZREMRANGEBYRANK key start stop 按照分数(闭区间)移除元素 ZREMRANGEBYSCORE rank 1200 1249 ZRANGEBYLEX rank - (playerXX 按照字节范围进行排序返回元素 ZLEXCOUNT [a [f 返回开闭区间范围内的元素数量 ZLEXCOUNT myset - + ZREMRANGEBYLEX 移除开闭区间 a->d内元素 ZREMRANGEBYLEX myset (a (d ZUNIONSTORE 求并集 #给alibaba的所有元素乘1.5倍 把programmer和alibaba乘后的结果赋值给zijiedance ZUNIONSTORE zijiedance 2 programmer alibaba WEIGHTS 1 1.5 ZINTERSTORE 交集