docker下安装redis(单机版和集群版)

博客文章地址:https://www.lqnb.xyz/article/1565948284
博客附源码(GitHub):https://github.com/memo012/people-blog

安装单机版redis

搜索redis

docker search redis

拉取redis镜像

docker pull redis

准备redis.conf

cd /usr/local
mkdir redis
cd redis/
mkdir data conf
wget https://raw.githubusercontent.com/antirez/redis/5.0.3/redis.conf -0 conf/redis.conf

修改配置文件

vim conf/redis.conf

修改内容(修改以下三项,其他不变)

bind 0.0.0.0  #所有IP都可以访问
protected-mode no # 关闭保护模式
appendonly yes

放行端口号

firewall-cmd --zone=public --add-port=6379/tcp --permanent
firewall-cmd --reload

创建并启动容器

docker run  -p 6379:6379 -v /usr/local/redis/data:/data -v /usr/local/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf --privileged=true  --name redis -d redis redis-server /usr/local/etc/redis/redis.conf 

命令详解

-p 6379:6379:端口映射
-v /usr/local/redis/conf/redis.conf: /usr/local/etc/redis/redis.conf :把宿主机配置好的redis.conf放到容器中
-v /usr/local/redis/data:/data:把redis持久化的数据在宿主机内显示,做数据备份
redis-server  /usr/local/etc/redis/redis.conf     让redis按照redis.conf的配置启动
–appendonly yes   redis启动后数据持久化

连接

docker exec -it redis redis-cli

在这里插入图片描述

集群安装

安装集群时,需最小三个节点

创建三个文件夹

mkdir -p  /usr/local/redis-cluster/6379/data
mkdir -p  /usr/local/redis-cluster/6380/data
mkdir -p  /usr/local/redis-cluster/6381/data
mkdir -p  /usr/local/redis-cluster/6379/conf
mkdir -p  /usr/local/redis-cluster/6380/conf
mkdir -p  /usr/local/redis-cluster/6381/conf
cd /usr/local/redis-cluster

准备redis.conf

三条代码都执行

wget https://raw.githubusercontent.com/antirez/redis/5.0.3/redis.conf -O  6379/conf/redis.conf
wget https://raw.githubusercontent.com/antirez/redis/5.0.3/redis.conf -O  6380/conf/redis.conf
wget https://raw.githubusercontent.com/antirez/redis/5.0.3/redis.conf -O  6381/conf/redis.conf

依次修改redis.conf

vim 6379/redis.conf

bind 0.0.0.0 #默认绑定本地地址,导致其它地方不可远程访问 改成局域网中的IP地址或者0.0.0.0所有ip都可以访问
protected-mode no #非保护模式
port 6379 #端口
pidfile /var/run/redis_6379.pid #需要修改为 reids_{
    
    port}.pid 的形式
appendonly yes #开启AOF日志 指定持久化方式
cluster-enabled yes #开启集群
cluster-config-file nodes-6379.conf #集群的配置文件 nodes_{
    
    port}.conf的形式
cluster-node-timeout 5000 #超时时间

vim 6380/redis.conf

bind 0.0.0.0 #默认绑定本地地址,导致其它地方不可远程访问 改成局域网中的IP地址或者0.0.0.0所有ip都可以访问
protected-mode no #非保护模式
port 6380 #端口
pidfile /var/run/redis_6380.pid #需要修改为 reids_{
    
    port}.pid 的形式
appendonly yes #开启AOF日志 指定持久化方式
cluster-enabled yes #开启集群
cluster-config-file nodes-6380.conf #集群的配置文件 nodes_{
    
    port}.conf的形式
cluster-node-timeout 5000 #超时时间

vim 6381/redis.conf
bind 0.0.0.0 #默认绑定本地地址,导致其它地方不可远程访问 改成局域网中的IP地址或者0.0.0.0所有ip都可以访问
protected-mode no #非保护模式
port 6381 #端口
pidfile /var/run/redis_6381.pid #需要修改为 reids_{
    
    port}.pid 的形式
appendonly yes #开启AOF日志 指定持久化方式
cluster-enabled yes #开启集群
cluster-config-file nodes-6381.conf #集群的配置文件 nodes_{
    
    port}.conf的形式
cluster-node-timeout 5000 #超时时间

放行端口号

注意docker网络: --net=host

docker run -p 6379:6379  --net=host  -v /usr/local/redis-cluster/6379/data:/data -v /usr/local/redis-cluster/6379/conf/redis.conf:/usr/local/etc/redis/redis.conf --privileged=true --name redis1 -d redis redis-server /usr/local/etc/redis/redis.conf
docker run -p 6380:63879  --net=host  -v /usr/local/redis-cluster/6380/data:/data -v /usr/local/redis-cluster/6380/conf/redis.conf:/usr/local/etc/redis/redis.conf --privileged=true --name redis2 -d redis redis-server /usr/local/etc/redis/redis.conf
docker run -p 6381:6379  --net=host  -v /usr/local/redis-cluster/6381/data:/data -v /usr/local/redis-cluster/6381/conf/redis.conf:/usr/local/etc/redis/redis.conf --privileged=true --name redis3 -d redis redis-server /usr/local/etc/redis/redis.conf

查看是否启动成功

docker ps

进入redis1进行操作

组建集群

redis-cli --cluster create 172.17.0.1:6379 172.17.0.1:6380 172.17.0.1:6381 --cluster-replicas 0

到此集群安装完毕

关闭开启redis集群

  • 关闭
docker stop redis1 redis2 redis3
  • 开启
docker start redis1 redis2 redis3

公众号

希望大家多多关注,里面不定期发放干货
领取全套资料:回复关键字【666】
迈莫公众号

扫描二维码关注公众号,回复: 12327456 查看本文章

猜你喜欢

转载自blog.csdn.net/qq_41066066/article/details/99682763