Redis 命令索引

命令索引

String

命令 描述 时间复杂度
APPEND key value 追加一个值到key上 O(1)
BITCOUNT key [start end] 统计字符串指定起始位置的字节数 O(N)
BITFIELD key [GET type offset] [SET type offset value] [INCRBY type offset increment] [OVERFLOW WRAP|SAT|FAIL] 位图的操作 O(1)
BITOP operation destkey key [key ...] 对一个或多个保存二进制位的字符串key进行位元操作,将结果保存在destkey O(N)
BITPOS key bit [start] [end] 返回字符串中第一个被设置为1或者0的bit位 O(N)
DECR key 整数原子减1 O(1)
DECRBY key decrement 原子减指定的整数 O(1)
GET key 返回key的value O(1)
GETBIT key offset 返回位的值存储在关键的字符串值的偏移量。 O(1)
GETRANGE key start end 获取存储在key上的值的一个子字符串 O(N)
GETSET key value 设置一个key的value,并获取设置前的值 O(1)
INCR key 执行原子加1操作 O(1)
INCRBY key increment 执行原子增加一个整数 O(1)
INCRBYFLOAT key increment 执行原子增加一个浮点数 O(1)
MGET key [key ...] 获得所有key的值 O(N)
MSET key value [key value ...] 设置多个key value O(N)
MSETNX key value [key value ...] 设置多个key value,仅当key存在时 O(N)
PSETEX key milliseconds value Set the value and expiration in milliseconds of a key O(1)
SET key value [EX seconds] [PX milliseconds] [NX|XX] 设置一个key的value值 O(1)
SETBIT key offset value Sets or clears the bit at offset in the string value stored at key O(1)
SETEX key seconds value 设置key-value并设置过期时间(单位:秒) O(1)
SETNX key value 设置的一个关键的价值,只有当该键不存在 O(1)
SETRANGE key offset value Overwrite part of a string at key starting at the specified offset O(M)
STRLEN key 获取指定key值的长度 O(1)

List

命令 描述 时间复杂度
BLPOP key [key ...] timeout 删除,并获得该列表中的第一元素,或阻塞,直到有一个可用
BRPOP key [key ...] timeout 删除,并获得该列表中的最后一个元素,或阻塞,直到有一个可用
BRPOPLPUSH source destination timeout 弹出一个列表的值,将它推到另一个列表,并返回它;或阻塞,直到有一个可用
LINDEX key index 获取一个元素,通过其索引列表
LINSERT key BEFORE|AFTER pivot value 在列表中的另一个元素之前或之后插入一个元素
LLEN key 获得队列(List)的长度
LPOP key 从队列的左边出队一个元素
LPUSH key value [value ...] 从队列的左边入队一个或多个元素
LPUSHX key value 当队列存在时,从队到左边入队一个元素
LRANGE key start stop 从列表中获取指定返回的元素
LREM key count value 从列表中删除元素
LSET key index value 设置队列里面一个元素的值
LTRIM key start stop 修剪到指定范围内的清单
RPOP key 从队列的右边出队一个元
RPOPLPUSH source destination 删除列表中的最后一个元素,将其追加到另一个列表
RPUSH key value [value ...] 从队列的右边入队一个元素
RPUSHX key value 从队列的右边入队一个元素,仅队列存在时有效

Hash

命令 描述 时间复杂度
HDEL key field [field ...] 删除一个或多个Hash的field
HEXISTS key field 判断field是否存在于hash中
HGET key field 获取hash中field的值
HGETALL key 从hash中读取全部的域和值
HINCRBY key field increment 将hash中指定域的值增加给定的数字
HINCRBYFLOAT key field increment 将hash中指定域的值增加给定的浮点数
HKEYS key 获取hash的所有字段
HLEN key 获取hash里所有字段的数量
HMGET key field [field ...] 获取hash里面指定字段的值
HMSET key field value [field value ...] 设置hash字段值
HSET key field value 设置hash里面一个字段的值
HSETNX key field value 设置hash的一个字段,只有当这个字段不存在时有效
HSTRLEN key field 获取hash里面指定field的长度
HVALS key 获得hash的所有值
HSCAN key cursor [MATCH pattern] [COUNT count] 迭代hash里面的元素

Sets

命令 描述 时间复杂度
SADD key member [member ...] 添加一个或者多个元素到集合里 O(N)
SCARD key 获取集合里面元素的数量 O(1)
SDIFF key [key ...] 获取队列中不存在的元素 O(N)
SDIFFSTORE destination key [key1 key2 ...] 取key1和key2的差集,放在key中,如果key中存在元素,则将其覆盖 O(N)
SINTER key [key ...] 获得两个集合的交集 O(N*M)
SINTERSTORE destination key [key1 key2 ...] 取key1和key2的交集,放在key中,如果key中存在元素,则将其覆盖 O(N*M)
SISMEMBER key member 确定一个给定的值是一个集合的成员 O(1)
SMEMBERS key 获取集合里面的所有元素 O(N)
SMOVE source destination member 移动集合里面的一个元素到另一个集合 O(1)
SPOP key [count] 删除并获取一个集合里面的元素 O(1)
SRANDMEMBER key [count] 从集合里面随机获取一个元素 O(N)
SREM key member [member ...] 从集合里删除一个或多个元素 O(N)
SUNION key [key ...] 返回给定的多个集合的并集中的所有成员. O(N)
SUNIONSTORE destination key [key ...] 合并set元素,并将结果存入新的set里面 O(N)
SSCAN key cursor [MATCH pattern] [COUNT count] 迭代set里面的元素 O(N)

ZSet

命令 描述 时间复杂度
ZADD key [NX|XX] [CH] [INCR] score member [score member ...] 添加到有序set的一个或多个成员,或更新的分数,如果它已经存在
ZCARD key 获取一个排序的集合中的成员数量
ZCOUNT key min max 返回分数范围内的成员数量
ZINCRBY key increment member 增量的一名成员在排序设置的评分
ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX] 相交多个排序集,导致排序的设置存储在一个新的关键
ZLEXCOUNT key min max 返回成员之间的成员数量
ZPOPMAX key [count] Remove and return members with the highest scores in a sorted set
ZPOPMIN key [count] Remove and return members with the lowest scores in a sorted set
ZRANGE key start stop [WITHSCORES] 根据指定的index返回,返回sorted set的成员列表
ZRANGEBYLEX key min max [LIMIT offset count] 返回指定成员区间内的成员,按字典正序排列, 分数必须相同。
ZREVRANGEBYLEX key max min [LIMIT offset count] 返回指定成员区间内的成员,按字典倒序排列, 分数必须相同
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count] 返回有序集合中指定分数区间内的成员,分数由低到高排序。
ZRANK key member 确定在排序集合成员的索引
ZREM key member [member ...] 从排序的集合中删除一个或多个成员
ZREMRANGEBYLEX key min max 删除名称按字典由低到高排序成员之间所有成员。
ZREMRANGEBYRANK key start stop 在排序设置的所有成员在给定的索引中删除
ZREMRANGEBYSCORE key min max 删除一个排序的设置在给定的分数所有成员
ZREVRANGE key start stop [WITHSCORES] 在排序的设置返回的成员范围,通过索引,下令从分数高到低
ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count] 返回有序集合中指定分数区间内的成员,分数由高到低排序。
ZREVRANK key member 确定指数在排序集的成员,下令从分数高到低
ZSCORE key member 获取成员在排序设置相关的比分
ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX] 添加多个排序集和导致排序的设置存储在一个新的关键
ZSCAN key cursor [MATCH pattern] [COUNT count] 迭代sorted sets里面的元素

Geo

命令 描述 时间复杂度
geoadd key [ NX | XX] [CH] longitude latitude member [ longitude latitude member ...] 添加地理位置坐标 O(log(N))
geopos key member [member ...] 获取地理位置的坐标 O(N)
geodist key member1 member2 [ M | KM | FT | MI] 计算两个位置之间的距离 O(log(N))
georadius key longitude latitude radius M | KM | FT | MI [WITHCOORD] [WITHDIST] [WITHHASH] [ COUNT count [ANY]] [ ASC | DESC] [STORE key] [STOREDIST key] 根据用户给定的经纬度坐标来获取指定范围内的地理位置集合 O(N+log(M))
georadiusbymember key member radius M | KM | FT | MI [WITHCOORD] [WITHDIST] [WITHHASH] [ COUNT count [ANY]] [ ASC | DESC] [STORE key] [STOREDIST key] 根据储存在位置集合里面的某个地点获取指定范围内的地理位置集合 O(N+log(M))
geohash key member [member ...] 返回一个或多个位置对象的 geohash O(log(N))

HyperLogLog

命令 描述 时间复杂度
PFADD key element [element …] 添加元素到 HyperLogLog O(1)
PFCOUNT key [key …] 获取给定键的近似基数,不存在则返回0 O(N)
PFMERGE destkey sourcekey [sourcekey …] 合并多个 HyperLogLog 为一个 O(N)

集群命令

命令 描述 时间复杂度
cluster info 打印集群的信息
cluster nodes 列出集群当前已知的所有节点( node),以及这些节点的相关信息。
cluster meet <ip> <port> 将 ip 和 port 所指定的节点添加到集群当中,让它成为集群的一份子。
cluster forget <node_id> 从集群中移除 node_id 指定的节点。
cluster replicate <node_id> 将当前节点设置为 node_id 指定的节点的从节点。
cluster saveconfig 将节点的配置文件保存到硬盘里面。
cluster addslots <slot> [slot ...] 将一个或多个槽( slot)指派( assign)给当前节点。
cluster delslots <slot> [slot ...] 移除一个或多个槽对当前节点的指派。
cluster flushslots 移除指派给当前节点的所有槽,让当前节点变成一个没有指派任何槽的节点。
cluster setslot <slot> node <node_id> 将槽 slot 指派给 node_id 指定的节点,如果槽已经指派给另一个节点,那么先让另一个节点删除该槽>,然后再进行指派。
cluster setslot <slot> migrating <node_id> 将本节点的槽 slot 迁移到 node_id 指定的节点中。
cluster setslot <slot> importing <node_id> 从 node_id 指定的节点中导入槽 slot 到本节点。
cluster setslot <slot> stable 取消对槽 slot 的导入( import)或者迁移( migrate)。
cluster keyslot <key> 计算键 key 应该被放置在哪个槽上。
cluster countkeysinslot <slot> 返回槽 slot 目前包含的键值对数量。
cluster getkeysinslot <slot> <count> 返回 count 个 slot 槽中的键