Redis常用命令速查
Redis主要有5种数据类型,包括String,List,Set,Zset,Hash,满足大部分的使用要求
数据类型 | 可存储的Value | 操作 | 应用场景 |
String | 字符串、整数、浮点数 | 对整个字符串或其中部分操作; 对数进行自增、自减操作 | 缓存 限流 计数器 分布式锁 分布式Sesssion |
Hash | 包含键值对的无序散列表 | 添加、获取、移除单个键值对; 获取所有键值对; 检查某键是否存在 | 用户信息 页面访问量 |
List | 列表 | 首位压入、弹出元素; 对部分元素进行操作 | 队列 |
Set | 无序集合 | 添加、获取、移除单个元素; 检查元素是否存在; 计算交、并、差集; 从集合中随机获取元素 | 赞、踩、标签 交集、并集、差集操作 |
ZSet | 有序集合 | 添加、获取、移除单个元素; 根据分值范围或成员来获取元素 计算一个键的排名 | 去重 排序(排行榜) |
1.String 类型常用命令
String 的所有命令中的下标都是从0开始计算的
set key value 给key设置值value
get key 获取key
getrange key start end 字符串分段(下标从0开始,双闭包,end为-1表示取start到所有)
getset key new_value 覆盖值,返回旧值
mset k1 v1 [k2 v2…] 批量设置key value
mget k1 [k2…] 批量获取
msetnx k1 v1 [k2 v2 …] 为多个键分别设置它们的值,仅当键不存在时
setnx key value 设置键的值,仅当键不存在时设置
setex key seconds value 设置键值并设置过期时间秒(expire)
setrange key index value 从index开始替换为value(value有几位替换几位,返回为替换后的key长度)
incr age 递增
incrby age 10 递增,指定步幅10
decr age 递减
decrby age 10 递减,指定步幅10
incrbyfloat key float 增减浮点数(返回计算后的值)
append key value2 追加
strlen key 获取长度
pesetex key milliseconds value 设置键的值和到期时间(以毫秒为单位)
getbit/setbit/bitcount/bitop 位操作
2.Hash 类型常用命令
hset key field value 设置散列字段的字符串值
hget key field 获取存储在指定键的哈希字段的值
hdel key field2 [field2] 删除一个或多个哈希字段
hexists key field 判断是否存在散列字段(1存在,0不存在)
hgetall key 获取该hash中所有的属性
hmset key f1 v1 [f2 v2…] 为多个哈希字段分别设置它们的值
hmget key f1 [f2…] 获取多个给定哈希字段的值
hsetnx key f v 仅当字段不存在时,才设置散列字段的值
hincrby key field num 按num大小递增
hdel myhash name 删除
hkeys key 获取哈希中的所有字段
hvals key 获取哈希中的所有值
hlen key 获取哈希中长度
3.List 类型常用命令
lpush mylist a b c 将一个或多个值添加到列表,左(头)插入
rpush mylist x y z 将一个或多个值添加到列表,右(尾)插入
lrange mylist s1 e1 获取数据集合(闭包[s1,e1],e1=-1表示表示取start到所有)
lpop mylist 弹出元素,左(头)开始第一个
rpop mylist 弹出元素,右(尾)开始第一个
llen mylist 获取长度
lrem mylist count value 从列表中删除元素,详见注解1
lindex mylist index 通过其索引从列表获取元素
lset mylist index valuse 通过索引设值
ltrim mylist s1 e1 列表只保留[s1,e1]之间的元素
linsert mylist before|after v1 v2 插入,注解2
rpoplpush list list2 转移列表的数据
lpushx list value 仅当列表存在时才左插入
rpushx list value 仅当列表存在时才右插入
注解:
1.lrem mylist count value :
根据参数 count
的值,移除列表中与参数 value
相等的元素。
count
的值可以是以下几种:
-
count > 0
: 从表头开始向表尾搜索,移除与value
相等的元素,数量为count
。 -
count < 0
: 从表尾开始向表头搜索,移除与value
相等的元素,数量为count
的绝对值。 -
count = 0
: 移除表中所有与value
相等的值。
2.linsert mylist before|after v1 v2
将值 v2插入到列表 key
当中,位于值 v1之前或之后。 当 index 不存在于列表 key
时,不执行任何操作。
4.Set 类型常用命令
sadd key v1[v2…] 将一个或多个成员添加到集合
smembers key 获取数据集合全部元素
srem key v1[v2…] 从集合中删除一个或多个成员
spop 从集合中删除并返回随机一个成员
sismember key v 判断确定给定值是否是集合的成员
scard key 获取集合中的成员数
sdiff | sinter | sunion key1 [key2] 集合间运算:差集 | 交集 | 并集
sdiffstore|sinterstore|sunionstore newkey key1 [key2] 差集 | 交集 | 并集 并将结果集存储在newkey键中
srandmember key [count] 从集合中获取一个或多个随机成员
smove oldkey newkey v 将成员从一个集合移动到另一个集合
5.ZSet 类型常用命令
zadd key 1 v1
zadd key 2 v2
zadd key 3 v3 为有序集合key赋值与值权重
zincrby key score v 为某值增长分数score
zscore key v 获取某值分数
zrem key v1 [v2…] 删除一个或多个元素
zcard key 元素数量
zrange key s e [withscores] 返回有序集 key 中,指定区间内的成员递增(加withscores为同时返回值的scores)
zrangebyscorekey min max [withscores] [LIMIT offset count] 返回指定范围的值,顺序小到大(注解1)
zrevrangebyscore key max min [WITHSCORES] [LIMIT offset count] 指定范围的值,逆序
zcount min max 获得指定分数范围[minx,max]内的元素个数
zremrangebyrank key start stop 按照排名范围删除元素,注解2
zremrangebyscore key min max 按照分数范围[minx,max]删除元素
zrank key v 返回有序集 key 中成员 v 的排名,其中有序集成员按 score 值递减(从小到大)排序。
zrevrank key v 返回有序集 key 中成员 member 的排名,其中有序集成员按 score 值递减(从大到小)排序。
ZUNIONSTORE destination numkeys key [key …] [WEIGHTS weight [weight …]] [AGGREGATE SUM|MIN|MAX] 求并集,注解3
zinterstore destination numkeys key [key …] [WEIGHTS weight [weight …]] [AGGREGATE SUM|MIN|MAX] 求交集,含义同上
注解:
1.key min max [WITHSCORES] [LIMIT offset count] :
返回有序集 key
中,所有 score
值介于 min
和 max
之间(包括等于 min
或 max
)的成员。有序集成员按 score
值递增(从小到大)次序排列。
可选的 LIMIT
参数 用于分页。
可选的 WITHSCORES
参数决定结果集是单单返回有序集的成员,还是将有序集成员及其 score
值一起返回。
2.zremrangebyrank key start stop :
移除有序集 key
中,指定排名(rank)区间内的所有成员。
区间分别以下标参数 start
和 stop
指出,包含 start
和 stop
在内。
下标参数 start
和 stop
都以 0
为底,也就是说,以 0
表示有序集第一个成员,以 1
表示有序集第二个成员,以此类推。 你也可以使用负数下标,以 -1
表示最后一个成员, -2
表示倒数第二个成员,以此类推。
3.ZUNIONSTORE destination numkeys key [key …] [WEIGHTS weight [weight …]] [AGGREGATE SUM|MIN|MAX]
计算给定的一个或多个有序集的并集,其中给定 key
的数量必须以 numkeys
参数指定,并将该并集(结果集)储存到 destination
。
默认情况下,结果集中某个成员的 score
值是所有给定集下该成员 score
值之 和 。
使用 WEIGHTS
选项,你可以为 每个 给定有序集 分别 指定一个乘法因子(multiplication factor),每个给定有序集的所有成员的 score
值在传递给聚合函数(aggregation function)之前都要先乘以该有序集的因子。
如果没有指定 WEIGHTS
选项,乘法因子默认设置为 1
。
使用 AGGREGATE
选项,你可以指定并集的结果集的聚合方式。
默认使用的参数 SUM
,可以将所有集合中某个成员的 score
值之 和 作为结果集中该成员的 score
值;使用参数 MIN
,可以将所有集合中某个成员的 最小 score
值作为结果集中该成员的 score
值;而参数 MAX
则是将所有集合中某个成员的 最大 score
值作为结果集中该成员的 score
值。
返回值:保存到 destination
的结果集的基数。