一、字符串
| 命令 | 说明 |
|---|---|
| set key val [ex seconds | px milliseconds] [nx|xx] | 设置字符串的值 |
| ex:秒级过期时间 | |
| px:毫秒级过期时间 | |
| nx:键不存在才能设置成功,用于添加 | |
| xx:键存在才能设置成功,用于编辑 | |
| setnx key val | 键不存在才能设置成功,用于添加 |
| setex key seconds val | 键存在才能设置成功,用于编辑 |
| mset [key val ...] | 批量设置键值 |
| get key | 获取值 |
| mget [key ...] | 批量获取值 |
| incr key | 自增 |
| 值非整数返回错误 | |
| 值是整数返回自增结果 | |
| 键不存在按0自增返回1 | |
| decr key | 自减 |
| 值非整数返回错误 | |
| 值是整数返回自减结果 | |
| 键不存在按0自减返回-1 | |
| incrby key increment | 自增指定增量 |
| decrby key decrement | 自减指定减量 |
| incrbyfloat key increment | 自增指定浮点数 |
| append key val | 给字符串尾部追加字符 |
| strlen key | 计算字符串长度 |
| getset key val | 设置新值并返回原值 |
| setrange key offset val | 设置指定位置的字符 |
| getrange key start end | 获取指定位置字符串 |
二、哈希
| 命令 | 说明 |
|---|---|
| hset key field val | 设置字段值 |
| gset key field | 获取字段值 |
| hdel key [field ...] | 批量删除字段值 |
| hlen key | 计算字段个数 |
| hmset key [field val ...] | 批量设置字段值 |
| hmget key [field ...] | 批量获取字段值 |
| hexists key field | 判断字段是否存在 |
| hkeys key | 获取该键所有字段名称 |
| hvals key | 获取该键所有值 |
| hgetall key | 获取该键所有字段与值 |
| hincrby key field increment | 自增指定增量 |
| hincrbyfloat key field increment | 自增指定浮点数增量 |
| hstrlen key field | 计算字符串长度 |
三、列表
| 命令 | 说明 |
|---|---|
| rpush key [val ...] | 从右边插入元素 |
| lpush key [val ...] | 从左边插入元素 |
| linsert key [before | after] pivot val | 向某元素前或后插入元素 |
| 搜索首个pivot元素,搜索不到返回-1 | |
| 在pivot元素前或后插入元素 | |
| lrange key start end | 查找指定范围的元素列表,包括start和end下标的元素 |
| lindex key index | 获取列表指定索引下标的元素 |
| llen key | 获取列表的元素总数 |
| lpop key | 从列表左侧弹出元素。例:a b c => b c |
| rpop key | 从列表右侧弹出元素。例:a b c => a b |
| lrem key count val | 删除指定元素。搜索等于val的元素删除 |
| count > 0 从左到右删除至多count个元素 | |
| count < 0 从右到左删除至多count个元素 | |
| count = 0 删除所有元素 | |
| ltrim key start end | 按照索引范围【闭区间】修剪列表,范围外的元素删除 |
| lset key index val | 修改指定索引下标的元素 |
| blpop [key ...] timeout | 从左侧阻塞式弹出 |
| brpop [key ...] timeout | 从右侧阻塞式弹出 |
| 列表为空 timeout > 0 ,timeout秒后弹出空值,期间有元素插入将直接弹出 timeout = 0 ,一直阻塞等待,直至有元素插入,然后弹出 |
|
| 列表不为空将直接弹出 | |
| 多个键时,从左到右遍历,一旦有一个键能弹出元素,立即返回 | |
| 多个客户端对同一个键执行brpop时 最先执行的可以获得弹出值;其余的继续阻塞 |
四、集合
| 命令 | 说明 |
|---|---|
| sadd key [member ...] | 添加成员 |
| srem key [member ...] | 删除成员 |
| scard key | 计算成员个数 |
| sismember key member | 判断成员是否存在于集合中 |
| srandmember key count | 随机从集合返回指定个数成员 |
| spop key count | 随机从集合弹出指定个数成员 |
| smembers key | 获取所有成员 |
| sinter [key ...] | 交集 |
| sunion [key ...] | 并集 |
| sdiff [key ...] | 差集 |
| sinterstore destination [key ...] | 交集并保存为新集合 destination:新集合名称 |
| sunionstore destination [key ...] | 并集并保存为新集合 |
| sdiffstore destination [key ...] | 差集并保存为新集合 |
五、有序集合
| 命令 | 说明 |
|---|---|
| zadd key [nx|xx] [ch] [incr] [score member ...] | 添加成员 |
| nx:键不存在才能设置成功,用于添加 | |
| xx:键存在才能设置成功,用于编辑 | |
| ch:返回操作后元素和分数发生变化的个数 | |
| incr:对score做自增,增量为此次命令的score值 | |
| zcard | 获取成员个数 |
| zscore key member | 获取某个成员分数 |
| zrank key member | 计算成员的score在集合中的排名,从低到高 |
| zrevrank key member | 计算成员的score在集合中的排名,从高到低 |
| zrem key [member ...] | 删除成员 |
| zincrby key increment member | 增加成员分数 |
| zrange key start end [withscores] | 返回指定排名范围的成员,从低到高 |
| withscores:同时返回成员分数 | |
| zrevrange key start end [withscores] | 返回指定排名范围的成员,从高到低 |
| zrangebyscore key min max [withscores] [limit offset count] | 返回指定分数范围的成员。从低到高 |
| withscores:同时返回成员分数 | |
| limit offset count:限制输出的起始位置和个数 | |
| min和max支持开区间、闭区间、无限小(-inf)、无限大(+inf) | |
| zrevrangebyscore key min max [withscores] [limit offset count] | 返回指定分数范围的成员。从高到低 |
| zcount key min max | 返回指定分数范围成员个数 |
| zremrangebyrank key start end | 删除指定排名内的升序元素 |
| zremrangebyscore key min max | 删除指定分数内的成员 |
| zinterstore destination numkeys [key ...] [weights weight] [aggregate sum|min|max] | 交集并保存 |
| destination:新集合名称 | |
| numkeys:需要做交集计算的键的个数 | |
| weights:每个键的权重,交集计算时,每个键的member会将分数乘以权重。权重默认1 | |
| aggregate:计算交集后,分值可按sum、min、max做汇总。默认sum | |
| zunionstore destination numkeys [key ...] [weights weight] [aggregate sum|min|max] | 并集并保存。参数同上 |
参考《Redis开发与运维》