Docker安装redis,整合springboot工程详细教程

引言

虽然docker安装redis非常简单,但是对于新手总会遇到一些棘手的问题卡住,然后花费大量的时间去查找资料,非常消磨一个程序员的意志,在此,本人这篇博客手把手教你怎么用docker安装redis并整合springboot工程,详细分析一下新手在此过程中可能出现的问题。

一、安装redis

1.首先我们准备一台已经安装了docker的虚拟机

在这里插入图片描述

2.接着我们拉去最新的redis,我这里拉去的redis8,但是发现报错了

在这里插入图片描述

3.这时我们只需修改一下docker的配置文件即可

vim /etc/docker/daemon.json

4.将如下内容写入docker的镜像加速器

{
	"registry-mirrors": [
	"https://docker.1panelproxy.com",
	"https://2a6bf1988cb6428c877f723ec7530dbc.mirror.swr.myhuaweicloud.com",
	"https://docker.m.daocloud.io",
	"https://hub-mirror.c.163.com",
	"https://mirror.baidubce.com",
	"https://your_preferred_mirror",
	"https://dockerhub.icu",
	"https://docker.registry.cyou",
	"https://docker-cf.registry.cyou",
	"https://dockercf.jsdelivr.fyi",
	"https://docker.jsdelivr.fyi",
	"https://dockertest.jsdelivr.fyi",
	"https://mirror.aliyuncs.com",
	"https://dockerproxy.com",
	"https://mirror.baidubce.com",
	"https://docker.m.daocloud.io",
	"https://docker.nju.edu.cn",
	"https://docker.mirrors.sjtug.sjtu.edu.cn",
	"https://docker.mirrors.ustc.edu.cn",
	"https://mirror.iscas.ac.cn",
	"https://docker.rainbond.cc"
	]
}

5.重新加载配置文件及docker服务

systemctl daemon-reload

6.重启docker

systemctl restart docker

7.重新拉取docker镜像

这时就能拉下来最新的redis了
在这里插入图片描述

8.挂载配置文件

宿主机redis.cof 文件位置 : /data/redis/conf/redis.cof

mkdir -p /data/redis/conf
cd /data/redis/conf
vi redis.conf
将第11.配置文件内容 进行复制

宿主机redis-data位置 : /data/redis/data

mkdir -p /data/redis/data

9. 启动redis 容器

启动最新版redis

docker run -itd --name redis --restart=always --log-opt max-size=100m --log-opt max-file=2 -p 6379:6379 -v /data/redis/conf/redis.conf:/etc/redis/redis.conf -v /data/redis/data:/data  redis redis-server /etc/redis/redis.conf --appendonly yes  --requirepass qwe123

9.1参数解析

【 --restart=always】 开机启动,失败也会一直重启;
【–log-opt max-size=100m】意味着一个容器日志大小上限是100M;
【–log-opt max-file=2】意味着一个容器有2个日志,分别是id+.json、id+1.json;
【-p 6379:6379】 将宿主机6379端口与容器内6379端口进行映射;
【-v】 将宿主机目录或文件与容器内目录或文件进行挂载映射;
【-itd】
i:以交互模式运行容器,通常与 -t 同时使用;
t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;
d:表示后台启动redis;
【–name】 给容器命名;
【–appendonly yes】 开启redis 持久化;
【–requirepass qwe123】 强烈建议设置密码,并且将密码设置为高强度复杂;
【redis-server /etc/redis/redis.conf】 以配置文件启动redis,加载容器内的conf文件;

9.2 启动特定版本redis

docker run --name redis \
-p 6379:6379 \
-v /docker/redis/redis.conf:/usr/local/etc/redis/redis.conf \
-v /docker/redis/data:/data \
--restart always \
-d redis:7.4.3 \
redis-server /usr/local/etc/redis/redis.conf

9.3 给正在运行的redis设置密码(选填)

如果容器正在运行,你想给redis设置密码,按照如下步骤实现:

9.3.1 进入容器
docker exec -it redis /bin/bash
9.3.2 连接redis
redis-cli
9.3.3 设置密码
CONFIG SET requirepass "12345"

如图
在这里插入图片描述
现在退出再登录的话就需要密码:
auth 12345
要让容器生效则重启redis容器:

docker restart redis

10.测试redis

10.1查看启动状态

docker ps -a | grep redis

在这里插入图片描述

10.2查看容器日志

docker logs -f  redis

在这里插入图片描述

10.3查看redis命令是否正常

docker exec -it redis redis-cli

在这里插入图片描述

11.配置文件

redis.conf配置文件

protected-mode no

port 6379

tcp-backlog 511
#redis密码 强烈建议设置复杂一些
requirepass qwe123     

timeout 0

tcp-keepalive 300

daemonize no

supervised no

pidfile /var/run/redis_6379.pid

loglevel notice

logfile ""

databases 30

always-show-logo yes

save 900 1
save 300 10
save 60 10000

stop-writes-on-bgsave-error yes

rdbcompression yes

rdbchecksum yes

dbfilename dump.rdb

dir ./

replica-serve-stale-data yes

replica-read-only yes

repl-diskless-sync no

repl-disable-tcp-nodelay no

replica-priority 100

lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no

appendonly yes

appendfilename "appendonly.aof"

no-appendfsync-on-rewrite no

auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb

aof-load-truncated yes

aof-use-rdb-preamble yes

lua-time-limit 5000

slowlog-max-len 128

notify-keyspace-events ""

hash-max-ziplist-entries 512
hash-max-ziplist-value 64

list-max-ziplist-size -2

list-compress-depth 0

set-max-intset-entries 512

zset-max-ziplist-entries 128
zset-max-ziplist-value 64

hll-sparse-max-bytes 3000

stream-node-max-bytes 4096
stream-node-max-entries 100

activerehashing yes

hz 10

dynamic-hz yes

aof-rewrite-incremental-fsync yes

rdb-save-incremental-fsync yes

12 测试远程链接

使用RDM-GUI测试链接
在这里插入图片描述
在这里插入图片描述

二、springboot集成redis

1.引入依赖

在springboot工程pom.xml文件中引入redis依赖

<!-- redis的起步依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>

2.配置Redis连接信息

在application.yml文件中配置Redis连接信息,包括主机、端口、密码等。
注意:如果没有设置密码,则不需要在此配置密码!
在这里插入图片描述

  data:
    redis:
      host: 192.168.x.x
      port: 6379
      password: xxxxx

3.创建Redis配置类

创建一个配置类,用于配置Redis连接工厂和其他相关配置。可以使用RedisStandaloneConfiguration或RedisSentinelConfiguration等来配置连接工厂。

package com.nd.it.config;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.connection.RedisStandaloneConfiguration;
import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;

@Configuration
public class RedisConfig {
    @Value("${spring.data.redis.host}")
    private String host;
    @Value("${spring.data.redis.port}")
    private int port;
    @Value("${spring.data.redis.password}")
    private String password;
    @Bean
    public RedisConnectionFactory redisConnectionFactory() {
        RedisStandaloneConfiguration config = new RedisStandaloneConfiguration();
        config.setHostName(host);
        config.setPort(port);
        config.setPassword(password); // 如果有密码的话

        return new LettuceConnectionFactory(config);
    }
}

4.使用RedisTemplate来测试一下

controller类
在这里插入图片描述
vo类
在这里插入图片描述
通过knife4j传值
在这里插入图片描述
我的redis中存入的key和value
在这里插入图片描述
返回成功,表示一切符合预期!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值