五、docker-compose开锋(docker 三剑客) (2)

光说不练假把式,我们上面说的一堆基础的知识,还是需要我们实践才行,不然我们不会有什么实质性的收获。所以接下来我们就搭建一个简单的demo。

我们还是用前面的的hello的项目,我们对项目进行一些修改,增加 redis。
这里我就不具体的讲啦,有不会的可以看我这篇文章,写的很简单明了:

三、Redis在SpringBoot中使用案例

我们这里先在在pom.xml 中增加redis 依赖:

<!--Redis使用starter--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>

在application.properties 中增加redis 配置

#配置redis # Redis数据库索引(默认为0) spring.redis.database=0 # Redis服务器地址 spring.redis.host=192.168.252.53 # Redis服务器连接端口 spring.redis.port=6389 # Redis服务器连接密码(默认为空) spring.redis.password= # 连接池最大连接数(使用负值表示没有限制) 默认 8 spring.redis.lettuce.pool.max-active=8 # 连接池最大阻塞等待时间(使用负值表示没有限制) 默认 -1 spring.redis.lettuce.pool.max-wait=-1 # 连接池中的最大空闲连接 默认 8 spring.redis.lettuce.pool.max-idle=8 # 连接池中的最小空闲连接 默认 0 spring.redis.lettuce.pool.min-idle=0

在controller 包中创建一个redisController 类

@RestController @RequestMapping("/redis") @Slf4j public class RedisController { @Autowired private StringRedisTemplate stringRedisTemplate; @RequestMapping(value = "/add",method = RequestMethod.GET) public String add(@RequestParam(value="key")String key,@RequestParam(value = "value") String value){ ValueOperations ops=stringRedisTemplate.opsForValue(); ops.set(key,value); return "success"; } @RequestMapping(value = "/get",method = RequestMethod.GET) public String get(@RequestParam(value = "key")String key){ ValueOperations ops=stringRedisTemplate.opsForValue(); return (String) ops.get(key); } }

好了,我们将项目打包成镜像,至于怎么打包成镜像上一篇我已经讲了,不会的可以查看:

准备我们的redis.conf

我们使用 redis 镜像,但是我们不想使用默认的配置,想要使用自己的配置启动redis。所以我们来复制一份redis.conf 。我就修改了

#设置redis 可以远程访问 bind 0.0.0.0 #后台启动 daemonize yes

file


redis.conf 放在我们上图的redis目录下。

docker-compose.yml

我们来编写docker-compose.yml ,直接套用上面的模版。

version: "3" services: webapp: image: quellanan/hello:1.0.0 ports: - "9000:9000" volumes: - "/data" depends_on: - redis redis: image: redis:latest restart: always ports: - "6389:6379" volumes: - /redis/redis.conf:/etc/redis/redis.conf command: redis-server /etc/redis/redis.conf

可以看到基本上是根据模版来的,指定我们镜像,端口,数据卷。
这里webapp 的没有什么好说的 ,上面都说了,一看就能懂,说一下redis的。
images 指定的镜像为redis:latest ,如果你本地没有这个镜像,就会从官网上下载。
restart:always 表示自动重启。

ports:"6389:6379"

表示镜像启动redis容器的端口是6379,映射到服务器的6389 端口,所以我们在项目配置的redis 端口应该是6389.

volumes: /redis/redis.conf:/etc/redis/redis.conf

表示将 ./redis/redis.conf 文件加载到 容器中的 /etc/redis/redis.conf 位置。
说明第一个路径是相对路径,第二个路径是绝对路径。

command: redis-server /etc/redis/redis.conf

表示在启动redis 容器的时候会执行的命令。这样就可以实现启动redis镜像加载我们自己的配置文件了。

docker-compose up

准备工作都做好了,开始我们大展拳脚,哈哈,其实不然,我们准备工作做好了,就已经成功一大半了,我们接下来要做的就是 就是通过docker-compose 启动镜像。我们直接在存放docker-compose.yml 目录下执行:

docker-compose up

file


这样我们就启动成功了。

如果想后台启动的话输入:

docker-compose up -d 测试

我们项目启动,现在来测试一下到底成功没有。

:9000/

这个是测试项目是正常启动了。

file


我们接下来看看我们配置的redis 有没有成功。

:9000/redis/add?key=a&value=123qaz :9000/redis/get?key=a

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpjffz.html