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 原生替代品:
- 访问 https://www.memurai.com/
- 下载并安装 Memurai
- 安装完成后自动启动服务
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
图形化工具
-
RedisInsight(官方推荐)
- 官网:https://redis.com/redis-enterprise/redis-insight/
- 功能:可视化数据、监控、CLI
-
Another Redis Desktop Manager
- GitHub:https://github.com/qishibo/AnotherRedisDesktopManager
- 功能:跨平台、免费开源
-
Medis
- 官网:https://getmedis.com/
- 功能:macOS 专用、界面美观
常见问题排查
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
小结
- 安装方式:支持包管理器、源码编译、Docker 等多种安装方式
- 配置文件:通过 redis.conf 配置网络、内存、持久化、安全等选项
- 运行时配置:使用 CONFIG SET/GET 命令动态修改配置
- 客户端工具:redis-cli 是最常用的命令行工具
- 图形化工具:RedisInsight、Another Redis Desktop Manager 等
练习
- 使用 Docker 安装 Redis 并配置持久化
- 修改 Redis 配置文件,设置密码和最大内存
- 使用 redis-cli 连接 Redis 并执行基本操作
- 安装一个图形化 Redis 管理工具并连接 Redis