跳到主要内容

Redis 安装与配置

本章将介绍如何在各种操作系统上安装 Redis,以及 Redis 的基本配置。

安装 Redis

Linux 安装

Ubuntu/Debian

# 更新包索引
sudo apt update

# 安装 Redis
sudo apt install redis-server -y

# 启动 Redis 服务
sudo systemctl start redis-server
sudo systemctl enable redis-server

# 验证安装
redis-cli ping

解释:使用 apt 包管理器安装 Redis,systemctl 命令用于管理服务。

CentOS/RHEL

# 安装 EPEL 源
sudo yum install epel-release -y

# 安装 Redis
sudo yum install redis -y

# 启动 Redis 服务
sudo systemctl start redis
sudo systemctl enable redis

# 验证安装
redis-cli ping

源码编译安装

# 下载 Redis 源码
wget https://download.redis.io/redis-stable.tar.gz

# 解压
tar xzf redis-stable.tar.gz
cd redis-stable

# 编译
make

# 安装
sudo make install

# 启动 Redis
redis-server

解释:源码编译安装可以获取最新版本的 Redis,适合需要特定版本或自定义编译选项的场景。

macOS 安装

使用 Homebrew

# 安装 Redis
brew install redis

# 启动 Redis 服务
brew services start redis

# 验证安装
redis-cli ping

手动启动

# 前台启动
redis-server

# 指定配置文件启动
redis-server /usr/local/etc/redis.conf

Windows 安装

使用 WSL(推荐)

Windows 上运行 Redis 的推荐方式是使用 WSL(Windows Subsystem for Linux):

# 在 WSL 中安装 Redis
sudo apt update
sudo apt install redis-server -y

# 启动 Redis
sudo service redis-server start

# 验证
redis-cli ping

使用 Memurai(Windows 原生)

Memurai 是 Redis 的 Windows 原生替代品:

  1. 访问 https://www.memurai.com/
  2. 下载并安装 Memurai
  3. 安装完成后自动启动服务

Docker 安装

使用 Docker 是最简单的安装方式:

# 拉取 Redis 镜像
docker pull redis:latest

# 运行 Redis 容器
docker run -d \
--name redis \
-p 6379:6379 \
redis:latest

# 运行 Redis 容器(带持久化)
docker run -d \
--name redis \
-p 6379:6379 \
-v /data/redis:/data \
redis:latest \
redis-server --appendonly yes

# 验证
docker exec -it redis redis-cli ping

解释

  • -d:后台运行容器
  • -p 6379:6379:映射端口
  • -v /data/redis:/data:挂载数据目录实现持久化
  • --appendonly yes:开启 AOF 持久化

Docker Compose 安装

创建 docker-compose.yml 文件:

version: '3.8'

services:
redis:
image: redis:latest
container_name: redis
ports:
- "6379:6379"
volumes:
- ./data:/data
command: redis-server --appendonly yes
restart: unless-stopped

启动服务:

docker-compose up -d

Redis 配置

配置文件位置

Redis 的配置文件通常位于:

  • Linux: /etc/redis/redis.conf
  • macOS: /usr/local/etc/redis.conf
  • Windows: Redis 安装目录下

核心配置项

网络配置

# 绑定地址,默认只允许本地访问
bind 127.0.0.1

# 允许所有地址访问(生产环境需谨慎)
bind 0.0.0.0

# 端口号
port 6379

# 保护模式,开启后只允许本地访问
protected-mode yes

内存配置

# 最大内存使用量
maxmemory 2gb

# 内存淘汰策略
# volatile-lru: 从设置了过期时间的键中淘汰最近最少使用的
# allkeys-lru: 从所有键中淘汰最近最少使用的
# volatile-lfu: 从设置了过期时间的键中淘汰最不经常使用的
# allkeys-lfu: 从所有键中淘汰最不经常使用的
# volatile-random: 从设置了过期时间的键中随机淘汰
# allkeys-random: 从所有键中随机淘汰
# volatile-ttl: 淘汰即将过期的键
# noeviction: 不淘汰,内存满时返回错误
maxmemory-policy allkeys-lru

持久化配置

RDB 持久化

# 启用 RDB 持久化
save 900 1 # 900秒内至少1个key变化
save 300 10 # 300秒内至少10个key变化
save 60 10000 # 60秒内至少10000个key变化

# RDB 文件名
dbfilename dump.rdb

# RDB 文件存储目录
dir /var/lib/redis

AOF 持久化

# 启用 AOF 持久化
appendonly yes

# AOF 文件名
appendfilename "appendonly.aof"

# AOF 同步策略
# always: 每次写入都同步,最安全但最慢
# everysec: 每秒同步一次(推荐)
# no: 由操作系统决定,最快但最不安全
appendfsync everysec

# AOF 重写时是否禁用 fsync
no-appendfsync-on-rewrite no

安全配置

# 设置密码
requirepass your_strong_password

# 重命名危险命令
rename-command FLUSHDB ""
rename-command FLUSHALL ""
rename-command KEYS ""
rename-command CONFIG ""

性能配置

# 最大客户端连接数
maxclients 10000

# TCP 连接队列长度
tcp-backlog 511

# 客户端空闲超时(秒)
timeout 0

# TCP keepalive
tcp-keepalive 300

运行时配置

Redis 支持在运行时修改配置:

# 查看配置
CONFIG GET maxmemory

# 修改配置
CONFIG SET maxmemory 4gb

# 查看所有配置
CONFIG GET *

# 将配置写入文件
CONFIG REWRITE

启动和停止 Redis

启动 Redis

# 使用默认配置启动
redis-server

# 指定配置文件启动
redis-server /etc/redis/redis.conf

# 后台启动(配置文件中设置 daemonize yes)
redis-server /etc/redis/redis.conf

# 使用 systemctl 启动(Linux)
sudo systemctl start redis

停止 Redis

# 使用 redis-cli 停止
redis-cli shutdown

# 使用 systemctl 停止(Linux)
sudo systemctl stop redis

# 强制停止(不推荐)
pkill redis-server

重启 Redis

# 使用 systemctl 重启(Linux)
sudo systemctl restart redis

# 手动重启
redis-cli shutdown
redis-server /etc/redis/redis.conf

验证安装

连接测试

# 连接 Redis
redis-cli

# 测试连接
127.0.0.1:6379> ping
PONG

# 设置值
127.0.0.1:6379> set test "Hello Redis"
OK

# 获取值
127.0.0.1:6379> get test
"Hello Redis"

# 查看服务器信息
127.0.0.1:6379> info

带密码连接

# 方式一:命令行参数
redis-cli -a your_password

# 方式二:交互式认证
redis-cli
127.0.0.1:6379> auth your_password
OK

# 方式三:环境变量
export REDISCLI_AUTH=your_password
redis-cli

连接指定主机和端口

# 连接指定主机和端口
redis-cli -h 192.168.1.100 -p 6379

# 连接 Unix Socket
redis-cli -s /tmp/redis.sock

Redis 客户端工具

命令行工具 redis-cli

# 基本连接
redis-cli

# 执行单个命令
redis-cli get mykey

# 管道模式
cat commands.txt | redis-cli

# 监控模式
redis-cli monitor

# 统计信息
redis-cli --stat

# 延迟测试
redis-cli --latency

# 大键扫描
redis-cli --bigkeys

图形化工具

  1. RedisInsight(官方推荐)

  2. Another Redis Desktop Manager

  3. Medis

常见问题排查

1. 无法连接 Redis

# 检查 Redis 是否运行
ps aux | grep redis

# 检查端口是否监听
netstat -tlnp | grep 6379

# 检查防火墙
sudo ufw status
sudo ufw allow 6379

2. 内存不足

# 查看内存使用
redis-cli info memory

# 查看大键
redis-cli --bigkeys

# 手动触发内存淘汰
redis-cli memory purge

3. 持久化失败

# 检查持久化状态
redis-cli info persistence

# 检查磁盘空间
df -h

# 检查文件权限
ls -la /var/lib/redis

小结

  1. 安装方式:支持包管理器、源码编译、Docker 等多种安装方式
  2. 配置文件:通过 redis.conf 配置网络、内存、持久化、安全等选项
  3. 运行时配置:使用 CONFIG SET/GET 命令动态修改配置
  4. 客户端工具:redis-cli 是最常用的命令行工具
  5. 图形化工具:RedisInsight、Another Redis Desktop Manager 等

练习

  1. 使用 Docker 安装 Redis 并配置持久化
  2. 修改 Redis 配置文件,设置密码和最大内存
  3. 使用 redis-cli 连接 Redis 并执行基本操作
  4. 安装一个图形化 Redis 管理工具并连接 Redis