【百炼成魔】docker部署redis单节点
环境准备
关闭防火墙
systemctl stop firewalld && systemctl disable firewalld
讯享网
讯享网setenforce 0 && sed -i 's/SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
安装常用软件
yum install -y wget net-tools bash-completion yum-utils device-mapper-persistent-data lvm2
添加软件源
讯享网 yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装docker
yum -y install docker-ce
启动docker并配置开机自启
讯享网systemctl start docker && systemctl enable docker
拉取redis镜像
docker pull redis docker images
创建redis持久化挂载卷
讯享网docker volume create -d local redis-data docker volume create -d local redis-conf
编写redis配置文件
vim redis.conf
讯享网protected-mode no port 6379 tcp-backlog 511 requirepass 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 protected-mode no port 6379 tcp-backlog 511 requirepass 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 yes lazyfree-lazy-expire yes lazyfree-lazy-server-del yes 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
参数解释 protected-mode: 这是一个布尔值 (yes/no),用于指定是否启用 Redis 的保护模式。在配置为 "no" 时,Redis 不会限制对外部网络的访问。默认值是 "yes"。 port: 这是 Redis 服务器监听的端口号。 tcp-backlog: 这是允许在给定时间内等待连接队列的最大长度。 requirepass: 这是访问 Redis 服务器时需要提供的密码。 timeout: 这是客户端连接的超时时间。 tcp-keepalive: 这是用于保持 TCP 连接处于活跃状态的时间间隔。 daemonize: 这是一个布尔值,用于指定是否将 Redis 服务器转换为守护进程。 supervised: 这是一个布尔值,用于指定是否以监督模式运行 Redis 服务器。 pidfile: 这是 Redis 服务器进程的 PID 文件的路径。 loglevel: 这是指定日志输出级别的配置参数。 logfile: 这是 Redis 日志文件的路径。如果设置为空字符串,日志将输出到标准输出 (stdout)。 databases: 这是 Redis 支持的数据库数量。 always-show-logo: 这是一个布尔值,用于指定是否始终显示 Redis 的标志图案。 save: 这是设置自动快照 (snapshot) 的条件。后面的数字对应于数据库修改的数量和时间间隔。 stop-writes-on-bgsave-error: 这是一个布尔值,用于指定在后台快照过程中发生错误时是否停止写入操作。 rdbcompression: 这是一个布尔值,用于指定是否启用 RDB 文件的压缩。 rdbchecksum: 这是一个布尔值,用于指定是否在 RDB 文件中包含校验和。 dbfilename: 这是持久化数据库的文件名。 dir: 这是持久化文件和日志文件的存储目录。 replica-serve-stale-data: 这是一个布尔值,用于指定当没有可用的主服务器时,从服务器是否继续向客户端提供数据。 replica-read-only: 这是一个布尔值,用于指定从服务器是否为只读模式。 appendonly: 这是一个布尔值,用于指定是否启用 AOF (Append-only File) 持久化。 appendfilename: 这是 AOF 文件的名称。 no-appendfsync-on-rewrite: 这是一个布尔值,用于指定在 AOF 重写过程中是否禁止执行 fsync 操作。 auto-aof-rewrite-percentage: 这是当 AOF 文件大小超过上一次重写大小的百分比时触发自动 AOF 重写的阈值。 auto-aof-rewrite-min-size: 这是触发自动 AOF 重写所需的最小 AOF 文件大小。 aof-load-truncated: 这是一个布尔值,用于指定在 AOF 文件被截断时是否加载截断的部分。 aof-use-rdb-preamble: 这是一个布尔值,用于指定在 AOF 文件中是否使用 RDB 标头。 lua-time-limit: 这是 Lua 脚本的执行时间限制。 slowlog-max-len: 这是 Redis 慢日志中记录的最大条目数。 notify-keyspace-events: 这是一个字符串参数,用于指定需要发送通知的键空间事件。
拷贝配置文件到挂载卷
查看docker家目录
讯享网docker info --format '{
{ .DockerRootDir }}'
cp redis.conf /var/lib/docker/volumes/redis-conf/_data/



启动redis容器
讯享网docker run --restart=always --log-opt max-size=100m --log-opt max-file=2 -p 6379:6379 --name redis -v redis-conf:/etc/redis/ -v redis-data:/data -d redis:latest redis-server /etc/redis/redis.conf --appendonly yes --requirepass ''
参数解释 --restart=always: 这个参数告诉 Docker 在容器退出时总是重启容器。这样可以确保 Redis 容器始终在运行状态。 --log-opt max-size=100m: 这个参数设置日志的最大大小为100MB。一旦达到这个大小,Docker 将开始滚动并创建新的日志文件。 --log-opt max-file=2: 这个参数设置保留的日志文件的最大数量为2。当达到这个数量后,Docker 将删除最旧的日志文件。 -p 6379:6379: 这个参数将主机的端口 6379 映射到 Redis 容器的端口 6379。这允许通过主机的 IP 地址和端口访问 Redis 服务。 --name redis: 这个参数设置容器的名称为 "redis"。使用容器名称可以方便地对容器进行管理和操作。 -v redis-conf:/etc/redis/: 这个参数将名为 "redis-conf" 的卷挂载到容器中 Redis 配置文件存放的目录 /etc/redis/。这使得 Redis 容器可以使用卷中的配置文件。 -v redis-data:/data: 这个参数将名为 "redis-data" 的卷挂载到容器中 Redis 数据存储的目录 /data。这使得 Redis 容器可以将数据持久化到卷中。 -d: 这个参数告诉 Docker 在后台运行容器(以守护进程模式)。 redis:latest: 这个参数指定要使用的 Redis 镜像的名称和标签。在这种情况下,使用最新版本的 Redis 镜像。 redis-server /etc/redis/redis.conf: 这个参数指定要运行的 Redis 服务器程序以及要使用的配置文件路径。在这种情况下,Redis 服务器将使用 /etc/redis/redis.conf 中的配置。 --appendonly yes: 这个参数打开 Redis 的 AOF(Append-Only File)模式,即将写入的命令追加到磁盘上的日志文件中,以提供持久化存储。 --requirepass '': 这个参数设置 Redis 的身份验证密码为 ""。这将要求客户端在连接到 Redis 时提供正确的密码。
查看容器启动情况
讯享网docker ps

查看redis状态 设置键值测试持久化状态
docker exec -it redis bash redis-cli auth ping set abc 123 get abc

退出容器 键盘按
讯享网ctrl +pq
重启容器验证持久化数据
docker restart redis docker exec -it redis bash redis-cli auth get abc

可以看到我们设置的键还在 证明持久化成功

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/24030.html