Docker安装Redis

        Redis 是一个开源的内存数据结构存储系统,广泛用于缓存、消息队列和实时数据处理等场景。使用 Docker 部署 Redis 不仅可以简化安装过程,还能提高管理的灵活性。下面我们将详细介绍如何使用 Docker 安装 Redis

前提条件

        在开始之前,请确保你已经在你的系统中安装了 Docker。关于Liunx安装Docker,请参考:Linux安装Docker

1.安装Redis

1.1.拉取Redis镜像

        首先,你需要从 Docker Hub 拉取 Redis 镜像。打开终端并输入以下命令: 

# 此命令会拉取 Docker Hub 上最新版本的Redis
$ docker pull redis

1.2.查看Redis镜像

        打开终端并输入以下命令:

$ docker images

        可见,我们已经安装了最新版本的 Redis: 

1.3.运行Redis容器

        镜像下载完成后,你可以使用以下命令启动一个 Redis 容器:

# 将 docker 容器的 6379 端口映射到宿主机的 63079 端口上
$ docker run -itd --name redis -p 63079:6379 redis

1.4.检查Redis的运行状态

        在终端上直接运行以下代码,来查看 Redis 容器的运行状态:

$ docker ps

2.配置Redis

        我们在安装完成 Redis 后,可能所需的配置并不是我们理想中的配置,这个时候我们就需要进行 Redis 配置文件的修改

2.1.进入到Redis容器

        首先,我们进入到对应的 Redis 容器:

# 这里的 redis 是对应的容器名称,也可以换成对应的容器ID
$ docker exec -it redis /bin/bash

# 如果有些服务器没有安装bash,也可以用下面这行代码
$ docker exec -it redis /bin/bash

2.2.找到redis.conf配置文件

$ vim /etc/redis/redis.conf

# 或者
$ vi /etc/redis/redis.conf

        这个地方,如果 Redis 容器中没有预装 vi/vim 编辑器,可以考虑使用 nano 编辑器,或者安装 vi/vim 编辑器:

$ apt-get update

$ apt-get install vim

2.3. 修改redis.conf配置文件

protected-mode no

port 6379

tcp-backlog 511

requirepass ${YOUR_PASSWD}

timeout 0

tcp-keepalive 60  # 默认值是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

rdbcompress 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-priorit 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-kespace-enents ""

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

list-max-zpilist-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

说明:

  • 这里 timeout 0 是设置Redis的空闲连接超时时间,0 表示禁用超时,即客户端连接不会因为闲置时间而自动断开。这意味着 Redis 将始终保持与客户端的连接,直到客户端主动断开连接;
  • tcp-keepalive 配置项用于设置 TCP 连接的保活时间,单位是秒。 tcp-keepalive 60 表示 Redis 将每 60 秒向客户端发送一个 TCP 保活探测包,以检查客户端连接是否仍然有效。这有助于发现并清理已经断开的连接,避免长时间占用资源的“僵尸”连接。

【博主的项目在引入Redis后,也是出现了周期性无法连接 Redis 或 连接 Redis 超时的情况,最终在查阅许多资料后,发现是TCP机制的问题,于是对症下药,修改了Redis配置文件中TCP连接的保活时间,最终得以解决这个问题。】

2.4.重启Redis容器

$ docker restart redis

 通过以下命令查看 Redis 是否成功正常运行:

$ docker logs redis

  • 23
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

洛*璃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值