字符串相关
| 命令 | 作用 | 返回 | 举例 |
|---|---|---|---|
| set | 赋值 | "OK" | set myKey myValue |
| get | 取值 | 值 | get myKey |
| del | 删除 | 数量 | del myKey |
列表相关
| 命令 | 作用 | 返回 | 举例 |
|---|---|---|---|
| RPUSH/LPUSH | 右/左存入数据 | 列表长度 | rpush myList value1 [value2...] |
| LRANGE | 指定范围取值 | 数据列表 | lrange myList 0 -1 |
| LINDEX | 指定下标获取数据,下标为负数时表示从右边开始计算 | 数据 | lindex myList 1 |
| LPOP/RPOP | 从左到右/从右往左弹出一条数据 | 数据 | lpop myList |
| LTRIM | 指定偏移量截取列表,保留[a,b]之间的数据 | OK | ltrim myList 1 2 |
| LLEN | 获取列表元素个数 | 数量 | llen myList |
| LREM | LREM key count value删除列表中前count个值为value的元素 当count>0时,从列表左边开始删除;当count<0时,从列表右边开始删除;当count=0时,删除所有值为value的元素 | 数量 | lrem myList -1 2 |
| LSET | LSET key index value指定下标设置值 | OK | lset myList 2 test |
阻塞式列表操作
| 命令 | 作用 | 返回 | 举例 |
|---|---|---|---|
| BLPOP | blpop key1[,key2...] timeout 弹出最左端元素,阻塞指定时间,单位秒 | 数据 | blpop mySet 10 |
| BRPOP | brpop key1[,key2] timeout 弹出最右端元素,阻塞指定时间,单位秒 | 数据 | brpop mySet 10 |
| RPOPLPUSH | rpoplpush srcKey destKey 从srcKey中弹出最右端元素,推入destKey列表的最左端 | 被操作的元素 | rpoplpush mySet1 mySet2 |
| BRPOPLPUSH | rpoplpush的阻塞形式。brpoplpush srcKey destKey timeout | 被操作的元素 | brpoplpush mySet1 mySet2 10 |
集合相关
最多可以存储2^32-1个字符串
| 命令 | 作用 | 返回 | 举例 |
|---|---|---|---|
| SADD | 添加数据 | 集合数据条数 | sadd mySet value1 |
| SMEMBERS | 返回集合的所有元素 | 数据列表 | smembers mySet |
| SISMEMBER | 是否存在指定数据 | 1存在,0不存在 | sismember mySet value1 |
| SREM | 弹出数据 | 删除成功的数据条数 | srem mySet value2 |
| SCARD | 返回集合包含的元素数量 | 数量 | scard mySet |
| SRANDMEMBER | srandmember key [count] 随机返回一个或多个元素 count为正,返回的随机元素不会重复 count为负,返回的随机元素会重复 | 数据列表 | srandmember mySet 3 |
| SPOP | 随机移除一个元素,并返回 | 数据 | spop mySet |
| SMOVE | smove srcKey destKey item 从src中移除,添加到dest中。 | 1成功,0失败 | smove mySet1 mySet2 value1 |
多集合处理
| 命令 | 作用 | 返回 | 举例 |
|---|---|---|---|
| SDIFF | sdiff key1 [key2 ...] 差集,返回存在于第一个集合,不存在于其他集合中的元素 | 数据列表 | sdiff mySet mySet2 |
| SDIFFSTORE | sdiff destKey key1 [key2 ...] sdiff的增强版,将返回的元素存入dest中 | 数据数量 | sdiffstore destSet mySet mySet2 |
| SINTER | SINTER key1 [key2 ...] 交集,返回同时存在于所有集合中的元素 | 数据列表 | sinter mySet mySet2 |
| SINTERSTORE | sinterstore destKey key1 [key2...] sinter的增强版,将返回的元素存入dest中 | 数据数量 | sinterstore destSet mySet mySet2 |
| SUNION | sunion key1 [key2 ...]并集 | 数据列表 | sunion mySet mySet2 |
| SUNIONSTORE | sunionstore destKey key1 [key2...]sunion的增强版,将返回的元素存入dest中 | 数据数量 | sunionstore destSet mySet mySet2 |
散列相关
| 命令 | 作用 | 返回 | 举例 |
|---|---|---|---|
| HSET | 赋值 | 赋值成功的数据条数 | hset myMap key1 value1 |
| HGET | 取值 | 数据 | hget myMap key1 |
| HMGET | HMGET myMap key1 [key2...] 取值 | 数量列表 | hmget myMap key1 key2 |
| HMSET | hmset myMap key1 value1 [key2 value2...] | OK | hmset myMap k1 v1 k2 v2 |
| HGETALL | 获取指定散列的所有键值对 | 键值放在列表中返回 | hgetall myMap |
| HDEL | 删除散列中的指定键 | 删除成功的数据条数 | hdel myMap |
| HLEN | 散列表中键值对的数量 | 数量 | hlen myMap |
| HEXISTS | hexists myMap k1是否存在 | 1存在,0不存在 | hexists myMap k1 |
| HKEYS | hkeys myMap 返回键列表 | 键列表 | hkeys myMap |
| HVALS | hvals myMap 返回值列表 | 值列表 | hvals myMap |
| HINCRBY | hincrby myMap k1 3指定值增加整数 | 修改后的值 | hincrby myMap k1 3 |
| HINCRBYFLOAT | hincrbyfloat myMap key value指定值增加浮点数 | 修改后的值 | hincrbyfloat myMap k1 1.3 |
有序集合相关
| 命令 | 作用 | 返回 | 举例 |
|---|---|---|---|
| ZADD | 添加数据,根据分值进行排序,必须为浮点数。 key可以为±inf,代表正负无穷大 | 添加成功的数据条数 | zadd myZset 111 value1 |
| ZRANGE | 指定分值范围,获取数据 | 数据列表 | zrange myZset 0 0 |
| ZRANGEBYSCORE | 指定分值值范围,获取数据 | 数据列表 | zrangebyscore myZset 0 100 |
| ZREM | 根据成员member删除指定数据 | 操作成功的数据条数 | zrem myZset value1 |
| ZCARD | zcard myZset 返回成员数量 | 条数 | zcard myZset |
| ZINCRBY | zincrby myZset 3 value1将value1的值增加3 | 增加后的值 | zincrby myZset 3 value1 |
| ZCOUNT | 返回指定分值(key)之间的成员数量 | 数量 | zcount myZset 1 100 |
| ZRANK | 返回指定成员(member)在集合中的排名,从0开始 | 排名 | zrank myZset value1 |
| ZSCORE | 返回指定成员(member)的分值(key) | 分值key | zscore myZset value1 |
有序集合范围操作
| 命令 | 作用 | 返回 | 举例 |
|---|---|---|---|
| ZREVRANK | 与zrank排序相反,返回分值 | 分值 | zrevrank myZset value1 |
| ZREVRANGE | 与zrange排序方式相反,从大到小排序。指定分值范围,按序返回数据 | 数据列表 | zrevrange myZset 0 1 |
| ZREVRANGEBYSCORE | 与zrangebyscore排序方式相反,指定分值范围,按序返回数据 | zrevrangebyscore myZset 0 1 | |
| ZREMRANGEBYRANK | zremrangebyrank mySet start stop 根据排名删除数据 | 被删除的数据条数 | zremrangebyrank myZset 0 1 |
| ZREMRANGEBYSCORE | zremrangebyscore mySet min max 根据分值删除数据 | 被删除的数据条数 | zremrangebyscore myZset 0 100 |
| ZINTERSTORE | zinterstore destKey keyCount key1 [key2 ...] 交集运算 | ||
| ZUNIONSTORE | zunionstore destKey keyCount key1 [key2 ...] 并集运算 |
自增自减命令
| 命令 | 作用 | 返回 | 举例 |
|---|---|---|---|
| INCR | 指定元素自增1 | 自增后的值 | set age 12 incr age |
| DECR | 指定元素自减1 | 自减后的值 | decr age |
| INCRBY | 指定元素增加指定的整数值 | 增加后的值 | incrby age 12 |
| DECRBY | 指定元素减少指定的整数值 | 减少后的值 | decrby age 3 |
| INCRBYFLOAT | 指定元素增加指定的浮点值 | 操作后的值 | incrbyfloat age 0.3 |
处理子串与二进制位
| 命令 | 作用 | 返回 | 举例 |
|---|---|---|---|
| APPEND | 在指定key后追加值 | 追加数据后数据长度 | set word hello append word ,world |
| GETRANGE | 获取指定偏移量内的子串 | 数据 | getrange word 2 5 |
| SETRANGE | 指定偏移量设置为给定值,覆盖 | 更新后的数据长度 | set word hello setrange word 2 n ==>henlo |
| SETBIT | 将字符串视为二进制位串, 指定偏移位置设值,只能设为0或1 | 更新后的值 | setbit word 2 1 |
| GETBIT | 将字符串视为二进制位串,指定偏移位置取值 | 0或1 | getbit word 2 |
| BITCOUNT | 将字符串视为二进制位串,获取其中值为1的二进制位数量 | 数量 | bitcount word |
| BITOP | 对一个或多个二进制位串执行按位运算, 保存在指定位置 格式为bitop operation dest-key src-key [src-key2...] operation取值范围为and/or/xor/not | 执行结果的数据长度 | bitop or result name name2 |
发布与订阅
| 命令 | 作用 | 返回 | 举例 |
|---|---|---|---|
| SUBSCRIBE | subscribe channel [channel2...] 订阅频道 | ||
| UNSUBSCRIBE | unsubscribe {channel [channel2...]} 退订频道,若不指定,退订所有 | ||
| PUBLISH | publish channel message 向指定频道发送消息 | ||
| PSUBSCRIBE | psubscribe pattern [pattern 2...] 订阅与指定模式匹配的所有频道 | ||
| PUNSUBSCRIBR | punsubscribe {pattern [pattern2 ...]} 退订与指定模式匹配的所有频道 |
其他命令
| 命令 | 作用 | 返回 | 举例 |
|---|---|---|---|
| SORT | sort srcKey [by pattern] [limit offset count] [get pattern [get pattern ...]] [ascIdesc] [alpha] [store dest-key] 对列表、集合、有序集合进行排序,返回排序结果 | ||
| PERSIST | persist key 移除指定键的过期时间 | ||
| TTL | ttl key 查看指定键剩余时间 | ||
| EXPIRE | expire key seconds 设置过期时间 秒 | ||
| EXPIREAT | expireat key timestamp 设置过期时间 UNIX时间戳 | ||
| PTTL | pttl key 查看距离过期时间还有多少毫秒 | ||
| PEXPIRE | pexpire key milliseconds设置过期时间 毫秒 | ||
| PEXPIREAT | pexpireat key timestamp-millionseconds 设置过期时间, 毫秒级经度的UNIX时间戳 |