首先用docker拉下来mysql和redis的镜像
docker pull mysql
docker pull redis
然后创建mysql容器
docker run -tid --name mysql-test -p 3306:3306 -p 33060:33060 -e MYSQL_ROOT_PASSWORD=123456 mysql
如果想把数据卷映射到本地文件夹可以用-v
docker run -ti --name mysql-test -p 3306:3306 -p 33060:33060 -v 自己弄个文件夹:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql
同理redis的容器也可以
docker run -itd --name redis-test -p 6379:6379 redis
弄好之后就可以创建spring boot的项目,这里用的是IDEA里的Spring initializr
把redis和mysl的勾上(mybatis和web不一定要勾上)。就行了
这个时候生成了一个pom.xml
这个时候再在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个如果不加的话可能会报一下 classNotFoundException,反正我就遇到了,之前看别人的教程感觉别人没加也正常跑起来了
然后配置一下application.yml 或者application.properties,两个功能是一样的只是语法不一样而已
# 数据库设置
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 # 连接池最大连接数
max-idle: 8 # 连接池最大空闲连接数
min-idle: 0 # 连接池最小空闲连接数
max-wait: -1ms # 连接池最大阻塞等待时间,负值表示没有限制
mybatis:
type-aliases-package: com.example.demo.Model
mapper-locations: classpath:mapper/*.xml
这里配置了mysql的驱动,redis的驱动和一个mybatis的东西
处理一下sql,随便搞个database,弄一张表
CREATE TABLE `demo`.`user` (
`id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`nickname` VARCHAR(50) NULL COMMENT '昵称',
`mobile` VARCHAR(20) NULL COMMENT '手机号',
`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');
弄到这里其实就好了。这里关于mybatis的就不写了,网上很多,然后弄一个测试类来单元测试一下
@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));
}
}
然后输出
这里14和user的信息都有了,让我们看看数据库中是什么样的
mysql里面,成功读出了的
redis里面,成功写入而且读出了的