【redis基础01】数据结构-通用命令、String、Hash、List、Set

1 通用命令

1.1 keys 检索匹配特定模式的所有键

KEYS:查看符合模板的所有key,不建议在生产环境设备上使用
在这里插入图片描述

1.2 del 删除指定的key

DEL:删除一个指定的key
在这里插入图片描述

1.3 exists 判断key是否存在

EXISTS:判断key是否存在
在这里插入图片描述

1.4 expire 给key设定有效期

1.5 ttl 查看key的剩余有效期

EXPIRE:给一个key设置有效期,有效期到期时该key会被自动删除
TTL:查看一个key的剩余有效期
在这里插入图片描述

1.6 key的层级格式

项目名:业务名:类型:id
项目名称叫heima,有user和product两种类型的数据
在这里插入图片描述
序列化为json字符串去存储
在这里插入图片描述
在这里插入图片描述

2 String类型

字符串,最简单的数据类型

2.1 set&get

SET:添加或者修改已经存在的一个String类型的键值对
GET:根据key获取String类型的value

2.2 mset&mget 批量操作

MSET:批量添加多个String类型的键值对
MGET:根据多个key获取多个String类型的value
在这里插入图片描述

2.3 incr&incrbyfloat 自增

INCR:让一个整型的key自增1
在这里插入图片描述
INCRBY:让一个整型的key自增并指定步长,例如:incrby num 2,让num值自增2
在这里插入图片描述

INCRBYFLOAT:让一个浮点类型的数字自增并指定步长
在这里插入图片描述

2.4 setnx

SETNX:添加一个String类型的键值对,前提是这个key不存在,否则不执行
在这里插入图片描述

2.5 setex 添加键值对并设定有效期

SETEX:添加一个String类型的键值对,并且指定有效期
在这里插入图片描述

3 Hash类型

在这里插入图片描述

在这里插入图片描述

3.1 hset&hget 添加或修改key值

在这里插入图片描述

在这里插入图片描述

3.2 hmset&hmget 批量处理

在这里插入图片描述

在这里插入图片描述

3.3 hgetall 返回所有的键值对

在这里插入图片描述

3.4 hkeys&hvals 取键或者取值

在这里插入图片描述

## 3.5 hincrby 自增

在这里插入图片描述

3.6 hsetnx 判断是否存在

4 List类型

双向链表结构

  1. 有序
  2. 元素可以重复
  3. 插入删除速度快
  4. 查询速度一般

在这里插入图片描述
在这里插入图片描述

4.1 lpush&rpush 存入数据

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

4.2 lpop&rpop 取出数值

在这里插入图片描述

4. lrange key star end 取出相应范围的值

从左边开始取,start 1号 end 2号
在这里插入图片描述
list从0开始编号
在这里插入图片描述

4.5 blpop&brpop 阻塞取值

如果一直取不到值,就会阻塞指定的时间为止。
在这里插入图片描述

5 Set类型

类似java中的hashset

  1. 无序
  2. 元素不可重复
  3. 查找快
  4. 支持交集、并集、差集等功能

5.1 单个集合增删改查

在这里插入图片描述

5.1.1 sadd&srem 添加值&删除值

5.1.2 scard 返回元素的个数

5.1.3 sisnumber 判断一个元素是否存在

5.1.4 smerbers 获取集合中的所有成员

在这里插入图片描述

5.2 多个集合增删改查

在这里插入图片描述

在这里插入图片描述

5.2.1 sinter 交集

5.2.2 sdiff 差集

5.2.3 sunion 并集

5.3 练习

在这里插入图片描述

#1.
sadd zs lisi wangwu zhaoliu
sadd ls  wangwu mazi ergou

#2.
scard zs

sinter zs ls

sdiff zs ls

sunion zs ls

sismember zs lisi

sismember ls zhangsan

srem zs lisi

在这里插入图片描述

6 SortedSet类型

与java中的treeset有些类似

  1. 可排序
  2. 元素不重复
  3. 查询速度快

可以实现排行榜的功能
在这里插入图片描述

6.1 练习

在这里插入图片描述

#1.将班级的下列学生得分存入Redis的Sortedset中:Jack 85, Lucy 89, Rose 82, Tom 95, Jerry 78, Amy 92, Miles 76
zadd Students 85 Jack 89 Lucy 82 Rose 95 Tom 78 Jerry 92 Amy 76 Miles
#2.删除Tom同学
zrem Students Tom
#3.获取Amy同学的分数
zscore Students Amy
#4.获取Rose同学的排名 因为所有排名都是按分数升序,所以要在前面加rev,且是从0号开始
zrevrank Students Rose
#5.查询80分以下有几个学生
zcount Students 0 80
#6.给Amy同学加2分
zincrby Students Amy 2
#7.查出成绩前3名的同学
zrevrange Students 0 2
#8.查出成绩80分以下的所有同学
zrangebyscore Students 0 80

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 25
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

失舵之舟-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值