光说不练假把式,我们上面说的一堆基础的知识,还是需要我们实践才行,不然我们不会有什么实质性的收获。所以接下来我们就搭建一个简单的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 yesredis.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 表示自动重启。
表示镜像启动redis容器的端口是6379,映射到服务器的6389 端口,所以我们在项目配置的redis 端口应该是6389.
volumes: /redis/redis.conf:/etc/redis/redis.conf表示将 ./redis/redis.conf 文件加载到 容器中的 /etc/redis/redis.conf 位置。
说明第一个路径是相对路径,第二个路径是绝对路径。
表示在启动redis 容器的时候会执行的命令。这样就可以实现启动redis镜像加载我们自己的配置文件了。
docker-compose up准备工作都做好了,开始我们大展拳脚,哈哈,其实不然,我们准备工作做好了,就已经成功一大半了,我们接下来要做的就是 就是通过docker-compose 启动镜像。我们直接在存放docker-compose.yml 目录下执行:
docker-compose up这样我们就启动成功了。
如果想后台启动的话输入:
docker-compose up -d 测试我们项目启动,现在来测试一下到底成功没有。
:9000/这个是测试项目是正常启动了。
我们接下来看看我们配置的redis 有没有成功。 :9000/redis/add?key=a&value=123qaz :9000/redis/get?key=a