Redis 常用命令总结

举报
崔庆才丨静觅 发表于 2021/05/22 00:55:17 2021/05/22
【摘要】 一、字符串 以实际输入的命令为例 1. 建立键值对 1 set bar 1 建立了一个键值对,键名叫 bar,键值是 1 2. 判断键是否存在 1 exists bar 判断键名 bar 是否存在 若存在则返回 1, 不存在返回 0 3. 删除键 1 del bar 删除键名为 bar 的键值对 若删除成功则返回删...

一、字符串

以实际输入的命令为例

1. 建立键值对

1
set bar 1

建立了一个键值对,键名叫 bar,键值是 1

2. 判断键是否存在

1
exists bar

判断键名 bar 是否存在 若存在则返回 1, 不存在返回 0

3. 删除键

1
del bar

删除键名为 bar 的键值对 若删除成功则返回删除的个数,删除失败 (不存在) 则返回 0

4. 查看所有的键

1
keys *

5. 获得键值的数据类型

1
type foo

获得键名为 foo 的键值类型 返回值类型可能有 string (字符串),hash (散列),list (列表),set (集合),zset (有序集合)

6. 获得键对应的值

1
get foo

获得键名为 foo 的键值

7. 自增

1
incr foo

创建一个 foo 的键值对,并自增为 1 但是运行 type foo 时,显示为 string 增加特定数值

1
incrby foo 3

使 foo 增加 3

8. 自减

1
decr foo

减小 1 个数值

1
decrby foo 3

减小 3 个数值

9. 增加指定浮点数

1
incrbyfloat bar 2.5

bar 增加指定的浮点数 2.5

10. 向尾部追加值

1
append bar hehe
1
append bar " world"

如果是要追加带空格的内容,则要用空格引起来 返回值是一个数字,代表现在键值的长度

11. 获取字符串长度

1
strlen bar

返回值是一个数字,代表现在的字符串长度

12. 同时设置多个键值对

1
mset key1 value1 key2 value2 key3 value3

13. 同时获得多个键值对应内容

1
mget key1 key2
1
2
1)value1
2)value2

二、散列

1. 赋值和取值

1
hset key field value

例如:

1
hset car price 500
1
hget car price

同时赋值多个字段的值

1
hmset car price 500 name BMW
1
hmget car price name

2. 判断字段是否存在

1
hexists car price

3. 只获得字段名

1
hkeys car

4. 只获得字段值

1
hvals car

5. 获得字段数量

1
hlen key

三、列表

1. 向两边添加元素

1
lpush group 1
1
rpush group 2

结果

1
2
1) "1" 
2) "2"

lpush 是向左边添加元素,rpush 是向右边添加元素。

2. 从两边弹出元素

1
lpop group
1
rpop group

lpop 是从左边弹出元素, rpop 是从右边弹出元素,显示元素的值

3. 获取列表中元素的个数

1
llen group

4. 获得列表片段

1
lrange group 0 3
1
lrange group -2 -1

其中 -2 -1 为负索引,这个也是可行的。-2 代表倒数第二个元素,-1 代表倒数第一个元素。 特殊地:获取所有元素则可以这么写

1
lrange group 0 -1

5. 删除列表中指定的值

1
lrem group count value

当 count > 0,它会从左边开始删除前 count 个值为 value 的元素。 当 count < 0,它会从右边开始删除前 | count | 个值为 value 的元素。 但 count = 0,它会删除所有值为 value 的元素。

6. 获得索引处的值

1
lindex group 0

获得索引 0 位置的元素值

7. 设置索引处的值

1
lset group 1 5

将 group 索引 1 处的值改为 5

8. 只保留特定的片段

1
ltrim group 0 1

只保留索引 0 到 1 的值,其余的删除

9. 向列表中插入元素

1
linsert group after 2 5

从左边开始查询,找到数字 2,在后面插入数字 5 insert group before 2 5 从左边开始查询,找到数字 2,在前面插入数字 5

四、集合

1. 添加元素

1
sadd hello 2 4 5

向集合中添加 2 4 5 元素,返回值是成功加入的元素数量

2. 删除元素

srem hello 4 5 从集合中删除 4 5,返回值是成功删除的元素数量

3. 获得集合中所有元素

1
smembers hello

4. 判断元素是否在集合中

sismember hello 2 判断 2 是否在集合 hello 中 存在返回 1,不存在返回 0

5. 集合的运算

差集

1
sdiff setA setB

返回值是集合,返回的是存在集合 A 中但是不存在 B 中的元素集合

交集

1
sinter setA setB

返回值是 setA 和 setB 的交集

并集

1
sunion setA setB

6. 获得集合大小

1
scard setA

返回值是数目

7. 随机获得集合中的数字

1
srandmember setA

五、有序集合

1. 增加元素

增加时需要指定元素的分数和元素的名称

1
zadd score 89 Tom 45 Amy

分数不仅可以是整数,还可以是浮点数

1
zadd score 2.3 Mike
1
zadd score +inf Bob

2. 获得元素分数

1
zscore score Tom

如果不存在,返回 (nil)

3. 获得排名在某个范围内的元素列表

1
zrange score 0 2

带分数显示

1
zrange score 0 -1 withscores

4. 获得指定分数范围的元素

1
zrangebyscore score 45 80

获得 45 分到 80 分的元素,闭区间 如果不想是闭区间,则可以在索引前面加上(

1
zrangebyscore score (45 80

5. 取某几个值

zrangebyscore score (45 80 limit 0 3 取 (45,80] 之间的元素,从第一个开始,取 3 个

6. 增加某个元素分数

1
zincrby score 5 Tom

给某个元素加 5 分

1
zincrby score -2 Tom

给某个元素减 2 分

7. 给某个元素重新赋值分数

同样用 zadd 命令

1
zadd score 22 Tom

8. 获得集合中元素的数量

1
zcard score

9. 获得指定分数范围内元素个数

1
zcount score 79 90

10. 删除一个或者多个元素

1
zrem score Tom

11. 按照分数删除元素

1
zremrangebyrank score 0 1

它先会把它按照分数从小到大排列,然后删除索引位置的元素

12. 按照分数删除元素

1
zremrangebyscore score 28 99

他会删除指定分数范围内的元素

13. 获得元素排名

1
zrank score Tom

获得按照分数从小到大排列后,Tom 的索引位置 反向排名

1
zrevrank score Tom

返回从大到小排列后,Tom 的索引位置

文章来源: cuiqingcai.com,作者:崔庆才,版权归原作者所有,如需转载,请联系作者。

原文链接:cuiqingcai.com/431.html

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。