Spring boot 用docker整合mysql和redis

2020-08-26  本文已影响0人  Good_Nine9

首先用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


1.png

把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的东西

弄到这里其实就好了。这里关于mybatis的就不写了,网上很多,然后弄一个测试类来单元测试一下

@SpringBootTest
class ZhangApplicationTests {

   @Autowired
   RedisTemplate redisTemplate;
   
   @Autowired
   UserMapper userMapper;

   @Test
   void contextLoads() {
      redisTemplate.opsForValue().set("key","14");
      System.out.println(redisTemplate.opsForValue().get("key"));

      System.out.println(userMapper.selectByPrimaryKey(1));
   }

}

然后输出


2.png

这里14和user的信息都有了,让我们看看数据库中是什么样的

mysql里面,成功读出了的


3.png

redis里面,成功写入而且读出了的


4.png
上一篇下一篇

猜你喜欢

热点阅读