Skip to content

Docker

直接docker启动

#!/bin/bash
# Docker Redis 部署脚本

REDIS_PASSWORD=$(openssl rand -base64 32 | tr -d '/+=' | cut -c1-24)

# 1. 创建数据目录
mkdir -p /data/redis/{data,conf}

# 2. 创建配置文件
cat > /data/redis/conf/redis.conf << EOF
requirepass ${REDIS_PASSWORD}
appendonly yes
appendfsync everysec
maxmemory 4gb
maxmemory-policy allkeys-lru
bind 0.0.0.0
protected-mode yes
EOF

# 3. 启动容器
docker run -d \
  --name redis-6379 \
  --restart always \
  --memory 4g \
  --cpus 2 \
  -p 6379:6379 \
  -v /data/redis/data:/data \
  -v /data/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf \
  redis:7.2.4-alpine \
  redis-server /usr/local/etc/redis/redis.conf

# 4. 验证
docker ps | grep redis

docker compose

services:
  redis:
    image: redis:7.2-alpine
    container_name: redis-server
    restart: unless-stopped
    ports:
      - "6379:6379"
    environment:
      - REDIS_PASSWORD=${REDIS_PASSWORD:-your_strong_password_here}
    command: 
      - redis-server
      - --requirepass ${REDIS_PASSWORD:-your_strong_password_here}
      - --appendonly yes
      - --maxmemory 512mb
      - --maxmemory-policy allkeys-lru
    volumes:
      - redis-data:/data
    networks:
      - redis-network
    healthcheck:
      test: ["CMD", "redis-cli", "-a", "${REDIS_PASSWORD:-your_strong_password_here}", "ping"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 40s

networks:
  redis-network:
    driver: bridge

volumes:
  redis-data:
    driver: local

方法1: 使用环境变量(推荐)

1 # 设置环境变量 2 export REDIS_PASSWORD=你的新密码 3 4 # 重启Redis 5 cd /tmp && docker compose -f redis.yaml down 6 cd /tmp && docker compose -f redis.yaml up -d

方法2: 创建.env文件

1 # 创建.env文件 2 echo "REDIS_PASSWORD=你的新密码" > /tmp/.env 3 4 # 重启Redis 5 cd /tmp && docker compose -f redis.yaml down 6 cd /tmp && docker compose -f redis.yaml up -d

方法3: 直接修改redis.yaml

编辑 /tmp/redis.yaml 文件,将所有 ${REDIS_PASSWORD:-your_strong_password_here} 中的默认密码改为你想要的密码,然后重启容器。

验证新密码

1 # 使用新密码测试连接 2 docker exec redis-server redis-cli -a 你的新密码 ping

✦ 注意: 修改密码后,所有使用旧密码的客户端都需要更新密码配置。

进程

bash
#!/bin/bash
# 生产环境 Redis 进程部署脚本

REDIS_VERSION="7.2.4"
REDIS_PORT="6379"
REDIS_PASSWORD=$(openssl rand -base64 32 | tr -d '/+=' | cut -c1-24)

# 1. 创建专用用户
useradd -r -s /bin/false redis

# 2. 创建目录结构
mkdir -p /etc/redis
mkdir -p /var/lib/redis/6379
mkdir -p /var/log/redis

# 3. 下载编译
cd /tmp
wget https://download.redis.io/releases/redis-${REDIS_VERSION}.tar.gz
tar xzf redis-${REDIS_VERSION}.tar.gz
cd redis-${REDIS_VERSION}
make -j$(nproc)
make install

# 4. 配置文件
cat > /etc/redis/6379.conf << EOF
bind 127.0.0.1
port 6379
requirepass ${REDIS_PASSWORD}
dir /var/lib/redis/6379
dbfilename dump.rdb
logfile /var/log/redis/6379.log
maxmemory 4gb
maxmemory-policy allkeys-lru
EOF

# 5. systemd 服务
cat > /etc/systemd/system/redis-6379.service << EOF
[Unit]
Description=Redis 6379
After=network.target

[Service]
Type=simple
User=redis
Group=redis
ExecStart=/usr/local/bin/redis-server /etc/redis/6379.conf
Restart=always
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload
systemctl enable redis-6379
systemctl start redis-6379

正在精进