最后
笔者已经把面试题和答案整理成了面试专题文档
3.运行容器
[root@192 ~]# docker run -itd --name=redis_6379 -p 6379:6379 redis
4.进入容器–>进入redis
docker exec -it redis_6379 bash
redis-cli
redis的基本数据类型
字符串(string)
序列 | 命令 | 描述 |
---|---|---|
1 | set key value | 设置指定 key 的值 |
2 | get key | 获取指定 key 的值。 |
3 | mget key1 key2 … keyn | 获取所有(一个或多个)给定 key 的值。 |
4 | setnx key value | 只有在 key 不存在时设置 key 的值。 |
5 | strlen key | 返回 key 所储存的字符串值的长度。 |
6 | incr key | 将 key 中储存的数字值增一。 |
7 | decr key | 将 key 中储存的数字值减一。 |
[root@localhost ~]# docker ps |grep redis
5d04e3abf91f redis "docker-entrypoint..." 7 days ago Up 3 days 0.0.0.0:6379->6379/tcp redis_6379
[root@localhost ~]# docker exec -it redis_6379 bash
root@5d04e3abf91f:/data# redis-cli
127.0.0.1:6379> keys \*
1) "dress"
2) "tom\_bank"
3) "weather"
4) "username"
5) "goods"
6) "mycar"
7) "book"
127.0.0.1:6379> setnx fruits apple
(integer) 1
127.0.0.1:6379> get fruits
"apple"
127.0.0.1:6379>
列表(list)
可以重复
序列 | 命令 | 描述 |
---|---|---|
1 | llen key | 获取列表长度 |
2 | lpush key value1… value2 | 将一个或多个值插入到列表头部 |
3 | lpop key | 移出并获取列表的第一个元素 |
4 | lrange key start stop | 获取列表指定范围内的元素 |
5 | lrem key count value | 移除列表元素 |
6 | rpush key value1… value2 | 尾部添加 |
7 | rpop key [count] | 尾部移除[count]元素 |
127.0.0.1:6379> lpush fruits apple peach
(integer) 2
127.0.0.1:6379> lrange fruits 0 3
1) "peach"
2) "apple"
127.0.0.1:6379> rpush fruits orange
(integer) 3
127.0.0.1:6379> lrange fruits 0 3
1) "peach"
2) "apple"
3) "orange"
127.0.0.1:6379>
集合(set)
Redis的Set是string类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。
序列 | 命令 | 描述 |
---|---|---|
1 | sadd key member1… member2 | 向集合添加一个或多个成员 |
2 | scard key | 获取集合的成员数 |
3 | smemebers key | 返回集合中的所有成员 |
4 | sismember key member | 判断member元素是否是集合key的成员 |
5 | spop key | 移除并返回集合中的一个随机元素 |
127.0.0.1:6379> sadd fruits apple apple orange
(integer) 2
127.0.0.1:6379> smembers fruits
1) "orange"
2) "apple"
127.0.0.1:6379>
有序集合(sorted set)
序列 | 命令 | 描述 |
---|---|---|
1 | zadd key score1 member1… score2 member2 | 向有序集合添加一个或多个成员,或者更新已存在成员的分数 |
2 | zcard key | 获取集合的成员数 |
3 | zcount key min max | 计算在有序集合中指定区间分数的成员数 |
4 | zrangebylenx key min max[limit offset count] | 通过字典区间返回有序集合的成员 |
5 | zrem key member1 member2 | 移除有序集合中的一个或多个成员 |
6 | ZREMRANGEBYSCORE key min max | 移除有序集合中给定的分数区间的所有成员 |
7 | zscore key member | 返回有序集中,成员的分数值 |
127.0.0.1:6379> zadd stu 3 peter 8 shirley
(integer) 2
127.0.0.1:6379> zrange stu 0 10
1) "peter"
2) "shirley"
127.0.0.1:6379> zadd stu 6 mary
(integer) 1
127.0.0.1:6379> zrange stu 0 10
1) "peter"
2) "mary"
3) "shirley"
127.0.0.1:6379>
哈希表(hash)【重要】
Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。
序列 | 命令 | 描述 |
---|---|---|
1 | hdel key field1 field2… fieldn | 删除一个或多个哈希表字段 |
2 | hexists key field | 查看哈希表 key 中,指定的字段是否存在 |
3 | hget key field | 获取存储在哈希表中指定字段的值 |
4 | hgetall key | 获取在哈希表中指定 key 的所有字段和值 |
5 | hincrby key field increment | 为哈希表 key 中的指定字段的整数值加上增量 increment |
6 | hkeys key | 获取所有哈希表中的字段(field) |
7 | hlen key | 获取哈希表中字段的数量 |
8 | hmget key field1 field2 | 获取所有给定字段的值 |
9 | hset key field value | 将哈希表 key 中的字段 field 的值设为 value 。 |
10 | hsetnx key field value | 只有在字段 field 不存在时,设置哈希表字段的值。 |
11 | hvals key | 获取哈希表中所有值 |
127.0.0.1:6379> hset stu name wm grand 4
(integer) 2
127.0.0.1:6379> hget stu name
"wm"
127.0.0.1:6379>
判断某个查看哈希表 key 中,指定的字段是否存在
127.0.0.1:6379> hexists book amount
(integer) 1
127.0.0.1:6379> hexists book amount123
(integer) 0
127.0.0.1:6379>
获取字段的值,进行减一操作
127.0.0.1:6379> hget book amount
"3"
127.0.0.1:6379> hincrby book amount -1
(integer) 2
127.0.0.1:6379> hget book amount
"2"
127.0.0.1:6379>
redis常用命令
序列 | 命令 | 描述 |
---|---|---|
1 | del key | 删除 key |
2 | exists key | 检查给定 key 是否存在。 |
3 | expire key seconds | 为给定 key 设置过期时间。 |
4 | pexpire key millisenconds | key 的过期时间以毫秒计。 |
5 | keys pattern | 查找所有符合给定模式( pattern)的 key 。(*) |
6 | ttl key | 以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live)。 |
7 | type key | 返回 key 所储存的值的类型。 |
127.0.0.1:6379> set uuid pet
OK
127.0.0.1:6379> expire uuid 10
(integer) 1
127.0.0.1:6379> get uuid
"pet"
127.0.0.1:6379> get uuid
(nil)
127.0.0.1:6379>
可以用在验证码中,10s后过期,失效
springBoot整合redis
1.添加依赖的包
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.tianju</groupId>
<artifactId>springboot_redis</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<!-- 起步依赖-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.13</version>
### 最后
![](https://img-blog.csdnimg.cn/img_convert/cb03f07ca46af55c37feb5a810de6ff8.webp?x-oss-process=image/format,png)
![](https://img-blog.csdnimg.cn/img_convert/5a259899f022a4e9ba56f9f13dfdd980.webp?x-oss-process=image/format,png)
![](https://img-blog.csdnimg.cn/img_convert/b04b866a935860c232c1134d43f13c11.webp?x-oss-process=image/format,png)
![](https://img-blog.csdnimg.cn/img_convert/80e31c40336bd334ec8d4dace0461393.webp?x-oss-process=image/format,png)
![](https://img-blog.csdnimg.cn/img_convert/724634721694057d10b3ad143333a82a.webp?x-oss-process=image/format,png)
![](https://img-blog.csdnimg.cn/img_convert/c12da505dafa45447f9a08c7eebc7976.webp?x-oss-process=image/format,png)
由于篇幅原因,就不多做展示了
> **本文已被[CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)收录**
**[需要这份系统化的资料的朋友,可以点击这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**
715462424718)]
[外链图片转存中...(img-71P12j1t-1715462424719)]
[外链图片转存中...(img-hrVEs3Ci-1715462424719)]
[外链图片转存中...(img-WXVgTWKc-1715462424720)]
由于篇幅原因,就不多做展示了
> **本文已被[CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)收录**
**[需要这份系统化的资料的朋友,可以点击这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**