Redis命令

1.redis五种数据结构

结构类型 可包含数据类型 结构读/写方式
STRING 字符串,整型或浮点型数值 对整个或部分字符串操作,增减整数和浮点数
LIST 字符串链表 可从两端弹出或压入数据,基于坐标截取,读取单个或多个项,按值查找或删除键
SET 无序不重复字符串的集合 增加,获取或删除单个项,检测成员关系,交、并、差操作,获取随机项
HASH 无序键值对哈希表 增加,获取或删除单个项,获取整个hash
ZSET(sorted set) 按数值大小排序的映射 增加,获取或删除单个值,获取基于值范围或成员值的项

2.Redis命令

2.1 Strings

命令 作用
GET 获取给定key存储的数据
SET 设置给定key存储的数据
DEL 删除给定key存储的数据(所有类型适用)
递增递减操作 -
INCR INCR key-name —— 使key存储的值加1
DECR DECR key-name —— 使key存储的值减1
INCRBY INCRBY key-name amount —— 使key存储的值增加给定的整数
DECRBY DECRBY key-name amount —— 使key存储的值减少给定的整数
INCRBYFLOAT INCRBYFLOAT key-name amount —— 使key存储的值增加给定的浮点数
字符串操作 -
APPEND APPEND key-name value —— 使key存储的字符串追加给定的值
GETRANGE GETRANGE key-name start end —— 获取从start到end的所包含的子字符串
SETRANGE SETRANGE key-name offset value —— 使子字符串从给定位置开始覆盖为给定值
GETBIT GETBIT key-name offset —— 将字节串作为比特串处理,并返回字符串中给定比特偏移量的比特值
SETBIT SETBIT key-name offset value —— 将字节串作为比特串处理,设置指定比特偏移量的值为给定比特
BITCOUNT BITCOUNT key-name [start end] —— 统计字符串中比特值为1的数量,可选参数为起始和结束位
BITOP BITOP operation dest-key key-name [key-name ...] —— 在提供的字符串执行一个位操作运算,AND, OR, XOR,或NOT, 存储结果到目标key

2.2 Lists

命令 作用
RPUSH RPUSH key-name value [value ...] —— 从list右侧压入数据
LPUSH LPUSH key-name value [value ...] —— 从list左侧压入数据
RPOP RPOP key-name —— 删除并返回list最右侧的项
LPOP LPOP key-name —— 删除并返回list最左侧的项
LINDEX LINDEX key-name offset —— 返回指定位置的项
LRANGE LRANGE key-name start end —— 返回指定起止范围内的项
LTRIM LTRIM key-name start end —— 截掉start到end之间的项
lists之间移动itmes
BLPOP BLPOP key-name [key-name] timeout —— 弹出首个非空LIST的最左侧的item,否则等待超时时间(单位: s)
BRPOP BRPOP key-name [key-name ...] timeout —— 弹出首个非空LIST的最右侧的item,否则等待超时时间(单位: s)
RPOPLPUSH RPOPLPUSH source-key dest-key —— 从source弹出最右侧的item并LPUSHes到destination,同时返回item给用户
BRPOPLPUSH BRPOPLPUSH source-key dest-key timeout —— 从source弹出最右侧的item并LPUSHes到destination,同时返回item给用户.如果source为空则等待超时(单位: s)

2.3 Sets

命令 作用
SADD SADD key-name item [item ...] —— 将items加入set并返回增加的items的数量
SREM SREM key-name item [item ...] —— 删除items并返回被删除的items的数量
SISMEMBER SISMEMBER key-name item —— 返回一个item是否在SET
SCARD SCARD key-name —— 返回SET中items的数量
SMEMBERS SMEMBERS key-name —— 以Python set类型返回SET中所有的items
SRANDMEMBER SRANDMEMBER key-name [count] —— 从SET中返回一个或多个随机的items.当count是正数时,Redis返回无重复的随机item,当count是负数时,Redis返回随机items,可能有重复
SPOP SPOP key-name —— 移除并返回SET中随机的item
SMOV SMOVE source-key dest-key item —— 如果source中有item,移除该item并加入到destination,如果移动成功则返回该item
连接多sets的操作 -
SDIFF SDIFF key-name [key-name ...] —— 返回第一个SET中不在其他SETs的items(数学中的差集运算)
SDIFFSTORE SDIFFSTORE dest-key key-name [key-name ...] —— 将第一个SET中不在其他SETs中的items存储在dest-key中(数学中的差集运算)
SINTER SINTER key-name [key-name ...] —— 返回在所有SETs中都存在的items(数学中的交集运算)
SINTERSTORE SINTERSTORE dest-key key-name [key-name ...] —— 将所SETs中都存在的items存储在dest-key中(数学中的交集运算)
SUNION SUNION key-name [key-name ...] —— 返回至少在一个SETs中存在的items(数学中的并集运算)
SUNIONSTORE SUNIONSTORE dest-key key-name [key-name ...] —— 将至在一个SETs中存在的items存储在dest-key中(数学中的并集运算)

2.4 Hashes

命令 作用
HMGET HMGET key-name key [key ...] —— 获取HASH中的value段
HMSET HMSET key-name key value [key value ...] —— 设置HASH中的value段
HDEL HDEL key-name key [key ...] —— 删除HASH中的键值对,返回找到并删除的键值数量
HLEN HLEN key-name —— 返回HASH中的键值对数量
HEXISTS HEXISTS key-name key —— 返回给定key是否存在于HASH
HKEYS HKEYS key-name —— 获取HASH中的keys
HVALS HVALS key-name —— 获取HASH中的values
HGETALL HGETALL key-name —— 获取HASH中的所有键值对
HINCRBY HINCRBY key-name key increment —— 使key中的value增加指定的整数
HINCRBYFLOAT HINCRBYFLOAT key-name key increment —— 使key中的value增加指定的浮点数

2.5 ZSET

命令 作用
ZADD ZADD key-name score member [score member ...] —— 将members和scores增加到ZSET
ZRED ZREM key-name member [member ...] —— 从ZSET中移除指定members,返回移除的members数量
ZCARD ZCARD key-name —— 返回ZSET中的members数量
ZINCRBY ZINCRBY key-name increment member —— 在ZSET中增加member的score
ZCOUNT ZCOUNT key-name min max —— 返回指定最小值和最大值之间的members数量
ZRANK ZRANK key-name member —— 返回ZSET中指定member的坐标
ZSCORE ZSCORE key-name member —— 返回ZSET中member的score
ZRANGE ZRANGE key-name start stop [WITHSCORES] —— 从start和stop范围内返回members和可选的scores
zset其它命令 -
ZREVRANK ZREVRANK key-name member —— 返回逆序排序的member的序号
ZREVANGE ZREVRANGE key-name start stop [WITHSCORES] —— 获取给定范围的members,以逆序排列
ZRANGEBYSCORE ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count] —— 获取min和max之间的members
ZREVRANGEBYSCORE ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count] —— 获取逆序排序的min和max之间的members
ZREMRANGEBYRANK ZREMRANGEBYRANK key-name start stop —— 删除起始范围内的items
ZREMRANGEBYSCORE ZREMRANGEBYRANK key-name min max —— 删除在min和max之间的scores的items
ZINTERSTORE ZINTERSTORE dest-key key-count key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM MIN MAX] —— Performs a SET -like intersection of the provided ZSETs
ZUNIONSTORE ZUNIONSTORE dest-key key-count key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM MIN MAX] —— Perform a SET-like union of the provided ZSETs

2.6 Publish/subcribe(发布/订阅)

命令 作用
SUBSCRIBE SUBSCRIBE channel [channel ...] —— 订阅指定信道
UNSUBSCRIBE UNSUBSCRIBE [channel [channel ...]] —— 取消订阅指定信道,如果未指定channel则取消订阅所有信道
PUBLISH PUBLISH channel message —— 发布消息到指定信道
PSUBSCRIBE PSUBSCRIBE pattern [pattern] —— 发送消息广播到所有匹配给定模式的信道
PUNSUBSCRIBE PSUBSCRIBE pattern [pattern ...] —— 从匹配给定模式的信道中订阅消息广播

PUBLISHSUBSCRIBE很有用,但是却不常用,有两个原因

  • 第一个原因是Redis的系统可靠性问题.在老版本的Redis中,一个客户端从信道订阅消息,但是读取消息的速度不够快时,将会导致Redis自身维持一个非常大的输出缓冲区.如果这个缓冲区太大,将会导致Redis性能急剧下降甚至崩溃.现在版本的Redis没有这个问题,当超过pubsub配置选项中的client-output-buffer-limit时会断开订阅的客户端.
  • 第二个原因是数据传输可靠性.在任何形式的网络系统中,你必须在假想你的操作在某一点会失败的前提下操作.通常的会在一段处理或重连.Python Redis客户端将会通过重连自动处理连接失败问题.但是在某些情况下订阅异常断开,订阅的消息在重连之前就发送了,客户端将永远无法收到这消息.当你依赖一条信道接受消息,Redis的PUBLISH/SUBSCRIBE语义可能会令你失望.

2.7 其它命令

命令 作用
SORT SORT source-key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern ...]] [ASC|DESC] [ALPHA] [STORE dest-key] —— 按照提供选项排序LIST,SETZSET,并返回或存储结果
- -
PERSIST PERSIST key-name —— 从一个key中移除过期数据
TTL TTL key-name —— 返回一个key的到期剩余时间
EXPIRE EXPIRE key-name seconds —— 以秒为单位设置key的过期时间
EXPIREAT EXPIREAT key-name timestamp —— 以指定的Unix时间戳形式设置过期时间
PTTL PTTL key-name —— 以毫秒为单位返回key的到期剩余时间
PEXPIRE PEXPIRE key-name milliseconds —— 以毫秒为单位设置key的过期时间
PEXPIREAT PEXPIREAT key-name timestamp-milliseconds —— 同EXPIREAT,时间戳格式为毫秒

results matching ""

    No results matching ""