首先用docker拉下來mysql和redis的鏡像
docker pull mysql
docker pull redis
然后創(chuàng)建mysql容器
docker run -tid --name mysql-test -p 3306:3306 -p 33060:33060 -e MYSQL_ROOT_PASSWORD=123456 mysql
如果想把數(shù)據(jù)卷映射到本地文件夾可以用-v
docker run -ti --name mysql-test -p 3306:3306 -p 33060:33060 -v 自己弄個(gè)文件夾:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql
同理redis的容器也可以
docker run -itd --name redis-test -p 6379:6379 redis
弄好之后就可以創(chuàng)建spring boot的項(xiàng)目,這里用的是IDEA里的Spring initializr

1.png
把redis和mysl的勾上(mybatis和web不一定要勾上)。就行了
這個(gè)時(shí)候生成了一個(gè)pom.xml
這個(gè)時(shí)候再在pom.xml里面加一些其他依賴
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>io.lettuce</groupId>
<artifactId>lettuce-core</artifactId>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-all</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
</dependency>
下面3個(gè)如果不加的話可能會報(bào)一下 classNotFoundException,反正我就遇到了,之前看別人的教程感覺別人沒加也正常跑起來了
然后配置一下application.yml 或者application.properties,兩個(gè)功能是一樣的只是語法不一樣而已
# 數(shù)據(jù)庫設(shè)置
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/databases?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8
username: root
password: 123456
redis:
host: 127.0.0.1
port: 6379
timeout: 3000ms
lettuce:
pool:
max-active: 8 # 連接池最大連接數(shù)
max-idle: 8 # 連接池最大空閑連接數(shù)
min-idle: 0 # 連接池最小空閑連接數(shù)
max-wait: -1ms # 連接池最大阻塞等待時(shí)間,負(fù)值表示沒有限制
mybatis:
type-aliases-package: com.example.demo.Model
mapper-locations: classpath:mapper/*.xml
這里配置了mysql的驅(qū)動,redis的驅(qū)動和一個(gè)mybatis的東西
處理一下sql,隨便搞個(gè)database,弄一張表
CREATE TABLE `demo`.`user` (
`id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`nickname` VARCHAR(50) NULL COMMENT '昵稱',
`mobile` VARCHAR(20) NULL COMMENT '手機(jī)號',
`password` CHAR(60) NULL COMMENT '密碼hash值',
`role` VARCHAR(100) NULL DEFAULT 'user' COMMENT '角色,角色名以逗號分隔',
PRIMARY KEY (`id`),
UNIQUE INDEX `mobile_UNIQUE` (`mobile` ASC))
COMMENT = '用戶表';
INSERT INTO `demo`.`user` (`nickname`, `mobile`, `password`) VALUES ('abc1', '13512345678', '123');
弄到這里其實(shí)就好了。這里關(guān)于mybatis的就不寫了,網(wǎng)上很多,然后弄一個(gè)測試類來單元測試一下
@SpringBootTest
class ZhangApplicationTests {
@Autowired
RedisTemplate redisTemplate;
@Autowired
UserMapper userMapper;
@Test
void contextLoads() {
User user = userMapper.selectByPrimaryKey(1);System.out.println(user);
redisTemplate.opsForValue().set("key","14");
System.out.println(redisTemplate.opsForValue().get("key"));
System.out.println(userMapper.selectByPrimaryKey(1));
}
}
然后輸出

2.png
這里14和user的信息都有了,讓我們看看數(shù)據(jù)庫中是什么樣的
mysql里面,成功讀出了的

3.png
redis里面,成功寫入而且讀出了的

4.png