4. 安装redis
后续内容需要使用到docker
以及docker-compose
, 需要先行安装,如果还未安装,可以搜索其它文章或者查看该安装系列docker安装
4.1 单机
# 创建redis的本地挂载目录
mkdir -p /opt/redis/conf & mkdir -p /opt/redis/data
vim /opt/redis/conf/redis.conf
简单版的配置文件内容如下
## 配置文件最基本的修改
## 只允许本机访问
## bind 127.0.0.1
## 修改为允许所有机器访问
bind 0.0.0.0
## 关闭保护模式
protected-mode no
## 开启持久化同步
appendonly yes
## 开启密码访问
requirepass 123456
启动方式
-
使用命令指定配置文件直接创建并启动容器
# 拉取镜像 docker pull redis:6.0 # 启动容器 docker run -d --name redis -p 6379:6379 -v /opt/redis/conf/:/redis/ -v /opt/redis/data/:/data redis:6.0 redis-server /redis/redis.conf # 进入容器内部 docker exec -it redis /bin/bash # 使用redis-cli连接测试 redis-cli # 由于配置文件被我修改了有密码,因此需要取得授权 auth 123456 # 测试存取 set test haha get test
-
docker-compose安装
cd /opt/redis vim docker-compose.yml
docker-compose.yml, 内容如下
version: "3" services: redis: image: redis:6.0 container_name: redis ports: - "6379:6379" volumes: - /etc/localtime:/etc/localtime - /opt/redis/conf/redis.conf:/redis.conf - /opt/redis/data:/data:rw command: "redis-server /redis.conf" restart: always
注意需要先安装docker-compose, 启动容器
# 进入到docker-compose.yml所在目录 cd /opt/redis # 启动查看日志,是否能正常运行 docker-compose up # 后台运行 docker-compose up -d # 停止 docker-compose stop
4.2 集群
下面的内容全部按照下面的链接中的内容来操作的,只不过根据自己的情况稍微做了微调
点击查看原文
原博主内容不错,可以收藏一波
创建存放集群文件根目录
mkdir -p /opt/redis/cluster/
cd /opt/redis/cluster/
# 先写cluster临时配置文件,主要是为了后面拷贝
vim redis-cluster.tmpl
redis-cluster.tmpl
内容如下, 注意下面的ip不要填写localhost之类的,因为在容器内部的localhost,可不是宿主机的localhost
port ${PORT}
requirepass 123456
masterauth 123456
protected-mode no
daemonize no
appendonly yes
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 15000
cluster-announce-ip 106.15.10.140
cluster-announce-port ${PORT}
cluster-announce-bus-port 1${PORT}
port
:节点端口;requirepass
:添加访问认证;masterauth
:如果主节点开启了访问认证,从节点访问主节点需要认证;protected-mode
:保护模式,默认值 yes,即开启。开启保护模式以后,需配置bind ip
或者设置访问密码;关闭保护模式,外部网络可以直接访问;daemonize
:是否以守护线程的方式启动(后台启动),默认 no;appendonly
:是否开启 AOF 持久化模式,默认 no;cluster-enabled
:是否开启集群模式,默认 no;cluster-config-file
:集群节点信息文件;cluster-node-timeout
:集群节点连接超时时间;cluster-announce-ip
:集群节点 IP,填写宿主机的 IP;cluster-announce-port
:集群节点映射端口;cluster-announce-bus-port
:集群节点总线端口。
每个 Redis 集群节点都需要打开两个 TCP 连接。一个用于为客户端提供服务的正常 Redis TCP 端口,例如 6379。还有一个基于 6379 端口加 10000 的端口,比如 16379。
第二个端口用于集群总线,这是一个使用二进制协议的节点到节点通信通道。节点使用集群总线进行故障检测、配置更新、故障转移授权等等。客户端永远不要尝试与集群总线端口通信,与正常的 Redis 命令端口通信即可,但是请确保防火墙中的这两个端口都已经打开,否则 Redis 集群节点将无法通信。
这里由于只有一台机器,所以就只能创建伪集群,三主三从都在本机进行, 用刚才前面临时创建的配置拷贝到下面创建的节点目录中
cd /opt/redis/cluster
for port in `seq 6371 6376`; do \
mkdir -p ${port}/conf \
&& PORT=${port} envsubst < redis-cluster.tmpl > ${port}/conf/redis.conf \
&& mkdir -p ${port}/data;\
done
在/opt/redis/cluster
目录下创建docker-compose
文件
services:
redis-6371:
image: redis:6.0
container_name: redis-6371
restart: always
network_mode: "host"
volumes:
- /opt/redis/cluster/6371/conf/:/redis
- /opt/redis/cluster/6371/data:/data
command: redis-server /redis/redis.conf
redis-6372:
image: redis:6.0
container_name: redis-6372
network_mode: "host"
volumes:
- /opt/redis/cluster/6372/conf/:/redis
- /opt/redis/cluster/6372/data:/data
command: redis-server /redis/redis.conf
redis-6373:
image: redis:6.0
container_name: redis-6373
network_mode: "host"
volumes:
- /opt/redis/cluster/6373/conf/:/redis
- /opt/redis/cluster/6373/data:/data
command: redis-server /redis/redis.conf
redis-6374:
image: redis:6.0
container_name: redis-6374
network_mode: "host"
volumes:
- /opt/redis/cluster/6374/conf/:/redis
- /opt/redis/cluster/6374/data:/data
command: redis-server /redis/redis.conf
redis-6375:
image: redis:6.0
container_name: redis-6375
network_mode: "host"
volumes:
- /opt/redis/cluster/6375/conf/:/redis
- /opt/redis/cluster/6375/data:/data
command: redis-server /redis/redis.conf
redis-6376:
image: redis:6.0
container_name: redis-6376
network_mode: "host"
volumes:
- /opt/redis/cluster/6376/conf/:/redis
- /opt/redis/cluster/6376/data:/data
command: redis-server /redis/redis.conf
创建集群
# 先随便进入一台机器
docker exec -it redis-6371 /bin/bash
cd /usr/local/bin/
redis-cli -a 123456 --cluster create 106.15.10.140:6371 106.15.10.140:6372 106.15.10.140:6373 106.15.10.140:6374 106.15.10.140:6375 106.15.10.140:6376 --cluster-replicas 1
中途提示的时候yes一下即可,创建成功如下图
如果是多机器的话, 把上面创建的节点分散在多个机器分开创建即可