前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【云安全最佳实践】搭建redis集群

【云安全最佳实践】搭建redis集群

原创
作者头像
用户4392429
修改2022-10-19 19:13:50
7830
修改2022-10-19 19:13:50
举报
文章被收录于专栏:wangwellwangwell

一、基础概览

1、redis集群最少需要6个节点,且redis集群下只有db0,不支持多db。

2、开放端口

节点访问:6391-6393

集群连接:16391-16393

二、准备容器挂载的目录

1.创建根目录

代码语言:shell
复制
mkdir /server
cd /server

2.创建容器目录。然后给每个节点创建对应的目录和配置文件

服务器1 192.168.79.131 init.sh

代码语言:shell
复制
for port in $(seq 6391 6393); \
do \
mkdir -p /server/redis-cluster/redis-node-${port}/{conf,data}
touch /server/redis-cluster/redis-node-${port}/conf/redis.conf
cat << EOF >/server/redis-cluster/redis-node-${port}/conf/redis.conf
#端口
port ${port} 
bind 0.0.0.0
#启用集群模式
cluster-enabled yes 
cluster-config-file nodes.conf
#超时时间
cluster-node-timeout 5000
# 集群连接地址及端口
cluster-announce-ip 192.168.79.131
cluster-announce-port ${port}
cluster-announce-bus-port 1${port}
appendonly yes
#集群加密
masterauth 123456
requirepass 123456
EOF
done

服务器2 192.168.79.132 init.sh

代码语言:shell
复制
for port in $(seq 6391 6393); \
do \
mkdir -p /server/redis-cluster/redis-node-${port}/{conf,data}
touch /server/redis-cluster/redis-node-${port}/conf/redis.conf
cat << EOF >/server/redis-cluster/redis-node-${port}/conf/redis.conf
#端口
port ${port} 
bind 0.0.0.0
#启用集群模式
cluster-enabled yes 
cluster-config-file nodes.conf
#超时时间
cluster-node-timeout 5000
# 集群连接地址及端口
cluster-announce-ip 192.168.79.132
cluster-announce-port ${port}
cluster-announce-bus-port 1${port}
protected-mode no
appendonly yes
#集群加密
masterauth 123456
requirepass 123456
EOF
done

三、使用docker-compose.yml运行redis容器

代码语言:yaml
复制
version: '3'

services:
 redis1:
  container_name: redis1
  image: redis:7.0.5
  network_mode: host
  restart: always  
  volumes:
   - /server/redis-cluster/redis-node-6391/conf/redis.conf:/etc/redis/redis.conf
   - /server/redis-cluster/redis-node-6391/data:/data
  environment:
   - TZ=Asia/Shanghai
   - LANG=en_US.UTF-8
  ports:
    - '6391:6379'     #服务端口
    - '16391:16379'   #集群端口
  command: ["redis-server", "/etc/redis/redis.conf"]
  privileged: true    #环境变量
  

 redis2:
  container_name: redis2
  image: redis:7.0.5
  network_mode: host
  restart: always
  volumes:
   -  /server/redis-cluster/redis-node-6392/conf/redis.conf:/etc/redis/redis.conf
   -  /server/redis-cluster/redis-node-6392/data:/data
  environment:
   - TZ=Asia/Shanghai
   - LANG=en_US.UTF-8
  ports:
    - '6392:6379'     #服务端口
    - '16392:16379'   #集群端口
  command: ["redis-server", "/etc/redis/redis.conf"]
  privileged: true    #环境变量

 redis3:
  container_name: redis3
  image: redis:7.0.5
  network_mode: host
  restart: always
  volumes:
   - /server/redis-cluster/redis-node-6393/conf/redis.conf:/etc/redis/redis.conf
   - /server/redis-cluster/redis-node-6393/data:/data
  environment:
   - TZ=Asia/Shanghai
   - LANG=en_US.UTF-8
  ports:
    - '6393:6379'     #服务端口
    - '16393:16379'   #集群端口
  command: ["redis-server", "/etc/redis/redis.conf"]
  privileged: true    #环境变量

分别在两台服务器上执行

代码语言:shell
复制
docker-compose up -d

四、组建redis集群

随便进一台服务器进行配置

进入某一个容器

代码语言:shell
复制
docker exec -it redis1 /bin/bash

组建集群

代码语言:shell
复制
redis-cli -p 6391 -a 123456 --cluster create 192.168.79.131:6391 192.168.79.131:6392 192.168.79.131:6393 192.168.79.132:6391 192.168.79.132:6392 192.168.79.132:6393 --cluster-replicas 1
image.png
image.png

输入yes即可

五、查看集群信息

主从关系

代码语言:shell
复制
redis-cli -p 6391 -a 123456

#查看节点

cluster nodes
image.png
image.png

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、基础概览
    • 1、redis集群最少需要6个节点,且redis集群下只有db0,不支持多db。
      • 2、开放端口
      • 二、准备容器挂载的目录
      • 三、使用docker-compose.yml运行redis容器
      • 四、组建redis集群
      • 五、查看集群信息
      相关产品与服务
      云数据库 Redis
      腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档