【Devops】Resid主从

39 阅读2分钟

Redis基础目录

mkdir -p /usr/local/redis 
mkdir -p /usr/local/redis/data 
mkdir -p /usr/local/redis/conf
mkdir -p /usr/local/redis/logs

Redis 下载源码

wget https://download.redis.io/releases/redis-7.4.6.tar.gz

安装make

apt-get install -y make gcc pkg-config

make 
make install

主节点配置

# 创建主节点配置文件
cat > /usr/local/redis/conf/redis.conf << EOF
# 基本配置
port 6379
daemonize yes
pidfile /usr/local/redis/redis.pid
dir /usr/local/redis/data
logfile "/usr/local/redis/logs/redis.log"

# 持久化配置
appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb

# 快照配置
save 900 1
save 300 10
save 60 10000
dbfilename dump.rdb

# 主从配置
requirepass YourStrongPassword  # 设置主节点访问密码
masterauth YourStrongPassword   # 从节点访问主节点时的密码

# 连接配置
timeout 300
tcp-keepalive 300
maxclients 10000

# 内存配置
maxmemory 2gb
maxmemory-policy allkeys-lru

# 安全配置
rename-command FLUSHALL ""
rename-command FLUSHDB ""
rename-command CONFIG ""

# 网络配置
bind 0.0.0.0
protected-mode yes
EOF

从节点配置文件

# 创建从节点配置文件
cat > /usr/local/redis/conf/redis.conf << EOF
# 基本配置
port 6379
daemonize yes
pidfile /usr/local/redis/redis.pid
dir /usr/local/redis/data
logfile "/usr/local/redis/logs/redis.log"

# 持久化配置
appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb

# 快照配置
save 900 1
save 300 10
save 60 10000
dbfilename dump.rdb

# 主从配置
replicaof 192.168.1.100 6379  # 主节点的IP和端口
requirepass YourStrongPassword  # 设置从节点访问密码
masterauth YourStrongPassword   # 访问主节点的密码

# 连接配置
timeout 300
tcp-keepalive 300
maxclients 10000

# 内存配置
maxmemory 2gb
maxmemory-policy allkeys-lru

# 安全配置
rename-command FLUSHALL ""
rename-command FLUSHDB ""
rename-command CONFIG ""

# 网络配置
bind 0.0.0.0
protected-mode yes
EOF

系统服务

# 创建systemd服务文件
cat > /etc/systemd/system/redis.service << EOF
[Unit]
Description=Redis In-Memory Data Store
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/redis/redis-server /usr/local/redis/conf/redis.conf
ExecStop=/usr/local/redis/redis-cli -h 127.0.0.1 -p 6379 -a YourStrongPassword shutdown
Restart=always
User=redis
Group=redis

[Install]
WantedBy=multi-user.target
EOF

创建用户组

# 创建redis用户和组
useradd -r -s /bin/false redis
chown -R redis:redis /usr/local/redis

设置权限

chown -R root:root /usr/local/redis 
chmod -R 755 /usr/local/redis

开机启动

# 重载systemd
systemctl daemon-reload

# 启动Redis
systemctl start redis

# 设置开机自启
systemctl enable redis

# 查看状态
systemctl status redis

测试主从复制

redis-cli -h 192.168.1.100 -p 6379 -a YourStrongPassword set test "Hello World"

从节点读取配置

redis-cli -h 192.168.1.101 -p 6379 -a YourStrongPassword get test