Redis常用命令
一、字符串
| 命令 | 说明 |
|---|---|
| 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 max min [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] | 并集并保存。参数同上 |
六、Bitmaps
| 命令 | 说明 |
|---|---|
| setbit key offset val | 设置值,设置第offset个位的值(从0算起) |
| gitbit key offset | 获取值 |
| bitcount key [start end] | 获取指定范围值为1的个数,不指定则获取全部 |
| bitop operation destkey [key …] | 运算多个Bitmaps的交集、并集、非、异或操作 |
| operation = and,计算交集并将结果保存到destkey | |
| operation = or,计算并集并将结果保存到destkey | |
| operation = not,计算非并将结果保存到destkey | |
| operation = xor,计算异或并将结果保存到destkey | |
| bitopos key bit [start] [end] | 计算第一个值为bit的偏移量 |
七、HyperLogLog
| 命令 | 说明 |
|---|---|
| pfadd key [element …] | 添加元素 |
| pfcount [key …] | 计算独立用户数 |
| pfmerge destkey [sourcekey …] | 合并 |
八、发布订阅
| 命令 | 说明 |
|---|---|
| publish channel message | 发布消息 |
| subscribe [channel …] | 订阅消息 |
| unsubscribe [channel …] | 取消订阅 |
| psubscribe [pattern …] | 模式订阅 支持 ? % []等模式 |
| h?llo 订阅hello、hallo、hbllo等 | |
| h%llo 订阅hello、hallo、heello等 | |
| h[ae]llo 只订阅hallo、hello | |
| h\?llo 订阅h?llo, 特殊字符作为普通字符用反斜杠 \ | |
| punsubscribe [pattern …] | 模式取消订阅,模式同上 |
| pubsub channels [pattern …] | 查看活跃的频道 |
| pubsub numsub [channel …] | 查看频道订阅数 |
| pubsub numpat | 查看使用模式的订阅数 |
九、GEO
| 命令 | 说明 |
|---|---|
| geoadd key [lon lat member …] | 增加地理位置信息 |
| lon:经度 | |
| lat:纬度 | |
| member:成员 | |
| geopos key [member …] | 获取地理位置信息 |
| geodist key member1 member2 [unit] | 计算两个地理位置的距离 |
| unit是单位,没有设置则默认为米 支持m(米)、km(千米)、mi(英里)、ft(英尺) |
|
| georadius key lon lat radius [unit m|km|ft|mi] [withcoord] [withdist] [withhash] [count count] [asc|desc] [store key] [storedist key] |
获取指定经纬度范围内的位置集合 |
| radius:半径,填数字 | |
| unit:单位,半径和离中心距离都用这个单位 | |
| withcoord:结果包含经纬度 | |
| withdist:结果包含离中心点位置的距离 | |
| withhash:结果包含geohash | |
| count:返回结果的数量 | |
| asc:按离中心距离升序返回结果 | |
| desc:按离中心距离降序返回结果 | |
| store:位置信息保存指定键,不能用with选项 | |
| storedist:离中心距离保存指定键,不能用with | |
| georadiusbymember key member radius [unit m|km|ft|mi] [withcoord] [withdist] [withhash] [count count] [asc|desc] [store key] [storedist key] |
获取指定成员范围内的位置集合,参数同上 |
| geohash key [member …] | 获取geohash值 |
| zrem key [member …] | 删除地理位置信息 |
参考《Redis开发与运维》
本作品采用《CC 协议》,转载必须注明作者和本文链接
关于 LearnKu
看了一眼setex错了, 键不存在也可以设置