第二章:安装与配置
在各种平台上安装和配置 Redis,包括 Docker、Linux 和 Windows。
最后更新: 2024-01-15
页面目录
Redis 安装与配置
本章详细介绍 Redis 在不同平台上的安装方法和配置选项。
系统要求
硬件要求
| 配置 | 最低要求 | 推荐配置 |
|---|---|---|
| CPU | 1 核 | 2+ 核 |
| 内存 | 512 MB | 4+ GB |
| 磁盘 | 1 GB | 10+ GB |
| 操作系统 | Linux/Windows/macOS | Linux |
软件要求
- GCC 编译器:Redis 使用 C 语言编写,需要 GCC 编译
- Make 工具:用于编译
- Tcl:用于运行测试
Docker 安装(推荐)
快速启动
# 拉取并运行 Redis
docker run -d \
--name redis \
-p 6379:6379 \
redis:latest \
redis-server --appendonly yes
# 验证运行
docker exec redis redis-cli ping
Docker Compose 方式
创建 docker-compose.yml:
version: '3.8'
services:
redis:
image: redis:7-alpine
container_name: redis
restart: unless-stopped
ports:
- "6379:6379"
volumes:
- redis_data:/data
- ./redis.conf:/usr/local/etc/redis/redis.conf
command: redis-server /usr/local/etc/redis/redis.conf
environment:
- REDIS_PASSWORD=your_password
healthcheck:
test: ["CMD", "redis-cli", "-a", "your_password", "ping"]
interval: 10s
timeout: 5s
retries: 3
volumes:
redis_data:
启动服务:
docker-compose up -d
# 连接 Redis
docker exec -it redis redis-cli -a your_password
Linux 安装
方式一:包管理器安装
Ubuntu / Debian
# 更新软件源
sudo apt update
# 安装 Redis
sudo apt install -y redis-server
# 启动 Redis
sudo systemctl start redis-server
sudo systemctl enable redis-server
# 验证安装
redis-cli ping
CentOS / RHEL / Fedora
# 安装 EPEL
sudo yum install -y epel-release
# 安装 Redis
sudo yum install -y redis
# 启动 Redis
sudo systemctl start redis
sudo systemctl enable redis
# 验证安装
redis-cli ping
方式二:源码编译安装
# 安装编译依赖
sudo apt install -y build-essential tcl
# 下载 Redis 源码
cd /tmp
wget https://github.com/redis/redis/archive/7.2.4.tar.gz
tar xzf 7.2.4.tar.gz
cd redis-7.2.4
# 编译安装
make -j$(nproc)
make test # 可选:运行测试
sudo make install
# 创建配置目录
sudo mkdir -p /etc/redis
sudo cp redis.conf /etc/redis/
# 创建 Redis 用户
sudo useradd -r -s /sbin/nologin redis
# 创建数据目录
sudo mkdir -p /var/lib/redis
sudo chown redis:redis /var/lib/redis
sudo chmod 750 /var/lib/redis
macOS 安装
方式一:Homebrew
# 安装 Redis
brew install redis
# 启动 Redis
brew services start redis
# 验证安装
redis-cli ping
方式二:编译安装
# 安装依赖
brew install build-essential tcl
# 下载编译(与 Linux 相同)
Windows 安装
Windows 不官方支持 Redis,但可以使用 WSL 或第三方移植版:
使用 WSL
# 在 WSL 中安装(推荐)
wsl --install
# 选择 Ubuntu
# 然后按照 Linux 安装步骤进行
使用 Memurai/MSOpenTech Redis
# 下载 MSOpenTech Redis
# https://github.com/microsoftarchive/redis/releases
# 或使用 Memurai(Windows 原生支持)
# https://www.memurai.com/
Redis 配置详解
核心配置文件
# Redis 配置文件位置
# Ubuntu/Debian: /etc/redis/redis.conf
# CentOS: /etc/redis.conf
# 源码安装: /etc/redis/redis.conf
重要配置项
# ===========================================
# 网络配置
# ===========================================
# 绑定 IP 地址(生产环境建议绑定内网 IP)
bind 127.0.0.1 192.168.1.100
# 端口号
port 6379
# TCP 连接队列长度
tcp-backlog 511
# 超时时间(秒),0 表示禁用
timeout 0
# ===========================================
# 通用配置
# ===========================================
# 守护进程运行
daemonize no
# PID 文件
pidfile /var/run/redis/redis-server.pid
# 日志级别:debug, verbose, notice, warning
loglevel notice
# 日志文件
logfile /var/log/redis/redis-server.log
# 数据库数量
databases 16
# ===========================================
# 快照配置(RDB 持久化)
# ===========================================
# 多久执行一次快照,条件触发
save 900 1 # 900秒内至少1个key变化
save 300 10 # 300秒内至少10个key变化
save 60 10000 # 60秒内至少10000个key变化
# 快照失败时停止写入
stop-writes-on-bgsave-error yes
# 是否压缩 RDB 文件
rdbcompression yes
# 是否校验 RDB 文件
rdbchecksum yes
# RDB 文件名
dbfilename dump.rdb
# RDB 文件目录
dir /var/lib/redis
# ===========================================
# 复制配置
# ===========================================
# 主从复制配置
# replicaof <masterip> <masterport>
# 主节点密码(如果有)
# masterauth <master-password>
# 当主节点不可用时,从节点是否继续响应读请求
replica-serve-stale-data yes
# 从节点是否只读
replica-read-only yes
# ===========================================
# 安全配置
# ===========================================
# 设置密码
requirepass your_password_here
# 命令重命名(增加安全性)
# rename-command CONFIG b840fc02d524045429341cc3e480787fac704bfa
# rename-command FLUSHALL ""
# ===========================================
# 内存配置
# ===========================================
# 最大内存(建议设置,防止内存耗尽)
maxmemory 2gb
# 内存淘汰策略
# noeviction: 不淘汰,返回错误
# allkeys-lru: 淘汰所有键中最久未使用的
# volatile-lru: 淘汰设置了过期时间的最久未使用
# allkeys-random: 随机淘汰所有键
# volatile-random: 随机淘汰设置了过期时间的键
# volatile-ttl: 淘汰即将过期的键
# allkeys-lfu: 淘汰使用频率最低的键
# volatile-lfu: 淘汰设置了过期时间中使用频率最低的键
maxmemory-policy allkeys-lru
# ===========================================
# AOF 持久化配置
# ===========================================
# 是否启用 AOF
appendonly no
# AOF 文件名
appendfilename "appendonly.aof"
# AOF 同步策略
# always: 每次写操作同步
# everysec: 每秒同步(推荐)
# no: 由操作系统决定何时同步
appendfsync everysec
# 重写时是否同步
no-appendfsync-on-rewrite no
# 自动重写百分比
auto-aof-rewrite-percentage 100
# 自动重写最小大小
auto-aof-rewrite-min-size 64mb
# ===========================================
# 慢查询日志
# ===========================================
# 记录超过多少微秒的命令
slowlog-log-slower-than 10000
# 最多记录多少条
slowlog-max-len 128
Redis 命令行客户端
基本命令
# 连接 Redis
redis-cli
# 指定主机和端口
redis-cli -h 192.168.1.100 -p 6379
# 带密码连接
redis-cli -a your_password
# 执行单个命令
redis-cli SET key value
redis-cli GET key
# 验证连接
redis-cli ping
# 返回: PONG
# 选择数据库(默认 0-15)
redis-cli SELECT 1
# 查看所有键
redis-cli KEYS "*"
# 查看键的数量
redis-cli DBSIZE
# 查看服务器信息
redis-cli INFO
# 查看慢查询日志
redis-cli SLOWLOG GET
批量操作
# 从文件执行命令
redis-cli --pipe < commands.txt
# 批量插入示例
cat > commands.txt << EOF
SET key1 value1
SET key2 value2
HSET user:1001 name "张三" age 25
EOF
redis-cli --pipe < commands.txt
启动和停止
systemd 服务配置
# /etc/systemd/system/redis.service
[Unit]
Description=Redis In-Memory Data Store
After=network.target
[Service]
Type=forking
ExecStart=/usr/bin/redis-server /etc/redis/redis.conf
PIDFile=/var/run/redis/redis-server.pid
Restart=always
RestartSec=3
User=redis
Group=redis
[Install]
WantedBy=multi-user.target
# 重新加载 systemd
sudo systemctl daemon-reload
# 启动 Redis
sudo systemctl start redis
# 设置开机自启
sudo systemctl enable redis
# 查看状态
sudo systemctl status redis
生产环境配置建议
# 生产环境推荐配置
daemonize no
bind 127.0.0.1
protected-mode yes
port 6379
timeout 0
tcp-keepalive 300
# 内存设置
maxmemory 4gb
maxmemory-policy allkeys-lru
# 持久化设置
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
# AOF 设置
appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
# 安全设置
requirepass your_strong_password
rename-command FLUSHDB ""
rename-command FLUSHALL ""
rename-command KEYS ""
# 日志
loglevel notice
logfile /var/log/redis/redis.log
# 慢查询
slowlog-log-slower-than 10000
slowlog-max-len 128
卸载 Redis
# Ubuntu/Debian
sudo apt purge redis-server
# CentOS
sudo yum remove redis
# 清理配置和数据
sudo rm -rf /var/lib/redis
sudo rm -rf /etc/redis
sudo rm -rf /var/log/redis
下一步
现在您已经掌握了 Redis 的安装和配置。接下来让我们深入学习 Redis 的数据类型。
👉 数据类型详解