Redis安装与配置 #
一、Linux安装 #
1.1 Ubuntu/Debian安装 #
bash
# 更新包索引
sudo apt update
# 安装Redis
sudo apt install redis-server -y
# 启动Redis
sudo systemctl start redis-server
sudo systemctl enable redis-server
# 验证安装
redis-cli ping
# 输出: PONG
1.2 CentOS/RHEL安装 #
bash
# 安装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
1.3 源码编译安装 #
bash
# 下载源码
wget https://download.redis.io/redis-stable.tar.gz
# 解压
tar xzf redis-stable.tar.gz
cd redis-stable
# 编译
make
# 安装(可选)
sudo make install
# 启动Redis
./src/redis-server
# 或指定配置文件
./src/redis-server redis.conf
1.4 Docker安装 #
bash
# 拉取镜像
docker pull redis:7.0
# 启动Redis容器
docker run -d \
--name redis \
-p 6379:6379 \
-v /data/redis:/data \
redis:7.0
# 启动带密码的Redis
docker run -d \
--name redis \
-p 6379:6379 \
redis:7.0 --requirepass yourpassword
# 使用自定义配置
docker run -d \
--name redis \
-p 6379:6379 \
-v /path/to/redis.conf:/etc/redis/redis.conf \
redis:7.0 redis-server /etc/redis/redis.conf
二、macOS安装 #
2.1 Homebrew安装 #
bash
# 安装Redis
brew install redis
# 启动服务
brew services start redis
# 停止服务
brew services stop redis
# 重启服务
brew services restart redis
# 验证
redis-cli ping
2.2 手动安装 #
bash
# 下载源码
curl -O https://download.redis.io/redis-stable.tar.gz
# 解压编译
tar xzf redis-stable.tar.gz
cd redis-stable
make
# 启动
./src/redis-server
三、Windows安装 #
3.1 WSL安装(推荐) #
bash
# 在WSL中安装Redis
sudo apt update
sudo apt install redis-server -y
# 启动Redis
sudo service redis-server start
# 验证
redis-cli ping
3.2 Windows原生安装 #
bash
# 下载Windows版本
# https://github.com/microsoftarchive/redis/releases
# 解压后运行
redis-server.exe redis.windows.conf
# 或安装为Windows服务
redis-server.exe --service-install redis.windows.conf
redis-server.exe --service-start
四、配置文件详解 #
4.1 基础配置 #
bash
# redis.conf 主要配置项
################################## 网络 ##################################
# 绑定地址
bind 127.0.0.1
# 保护模式(生产环境建议开启)
protected-mode yes
# 端口号
port 6379
# TCP连接队列
tcp-backlog 511
# 客户端空闲超时(0表示禁用)
timeout 0
# TCP keepalive
tcp-keepalive 300
################################## 通用 ##################################
# 是否以守护进程运行
daemonize no
# PID文件位置
pidfile /var/run/redis/redis-server.pid
# 日志级别
# debug: 大量信息,适合开发/测试
# verbose: 很多信息,但不像debug那样多
# notice: 适量信息,适合生产
# warning: 仅记录重要/关键信息
loglevel notice
# 日志文件位置
logfile /var/log/redis/redis-server.log
# 数据库数量
databases 16
################################## 安全 ##################################
# 密码认证
requirepass yourpassword
# 重命名危险命令
rename-command FLUSHDB ""
rename-command FLUSHALL ""
rename-command KEYS ""
4.2 内存管理配置 #
bash
################################## 内存 ##################################
# 最大内存使用量
maxmemory 2gb
# 内存淘汰策略
# volatile-lru: 从设置了过期时间的数据集中淘汰最近最少使用的key
# allkeys-lru: 从所有数据集中淘汰最近最少使用的key
# volatile-lfu: 从设置了过期时间的数据集中淘汰最不常用的key
# allkeys-lfu: 从所有数据集中淘汰最不常用的key
# volatile-random: 从设置了过期时间的数据集中随机淘汰key
# allkeys-random: 从所有数据集中随机淘汰key
# volatile-ttl: 从设置了过期时间的数据集中淘汰即将过期的key
# noeviction: 不淘汰,内存满时返回错误
maxmemory-policy allkeys-lru
# 淘汰样本数量
maxmemory-samples 5
4.3 持久化配置 #
bash
################################# RDB快照 #################################
# 保存策略
save 900 1 # 900秒内至少1个key变化
save 300 10 # 300秒内至少10个key变化
save 60 10000 # 60秒内至少10000个key变化
# 禁用RDB
# save ""
# RDB文件名
dbfilename dump.rdb
# 数据目录
dir /var/lib/redis
# 压缩
rdbcompression yes
# 校验
rdbchecksum yes
################################# AOF日志 #################################
# 开启AOF
appendonly yes
# AOF文件名
appendfilename "appendonly.aof"
# 同步策略
# always: 每次写操作都同步,最安全但最慢
# everysec: 每秒同步一次,推荐
# no: 由操作系统决定,最快但最不安全
appendfsync everysec
# AOF重写期间是否禁用fsync
no-appendfsync-on-rewrite no
# AOF文件大小触发重写的百分比
auto-aof-rewrite-percentage 100
# AOF文件触发重写的最小大小
auto-aof-rewrite-min-size 64mb
4.4 主从复制配置 #
bash
################################# 主从复制 #################################
# 设置主节点地址
replicaof 192.168.1.100 6379
# 主节点密码
masterauth yourpassword
# 从节点只读
replica-read-only yes
# 从节点连接主节点时的密码
replica-auth-password yourpassword
4.5 性能优化配置 #
bash
################################# 性能 #################################
# 禁用THP(Transparent Huge Pages)
# 建议在系统层面禁用
# echo never > /sys/kernel/mm/transparent_hugepage/enabled
# 客户端连接数
maxclients 10000
# 慢查询日志
slowlog-log-slower-than 10000 # 微秒
slowlog-max-len 128
# 客户端输出缓冲区限制
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit replica 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
五、启动与停止 #
5.1 启动Redis #
bash
# 直接启动(前台运行)
redis-server
# 指定配置文件启动
redis-server /etc/redis/redis.conf
# 后台启动(配置daemonize yes)
redis-server /etc/redis/redis.conf
# Docker启动
docker run -d -p 6379:6379 redis:7.0
5.2 停止Redis #
bash
# 使用redis-cli
redis-cli shutdown
# 带密码停止
redis-cli -a yourpassword shutdown
# 使用kill(不推荐)
kill -9 $(pidof redis-server)
# Docker停止
docker stop redis
5.3 重启Redis #
bash
# systemctl方式
sudo systemctl restart redis
# Docker方式
docker restart redis
六、验证安装 #
6.1 检查Redis状态 #
bash
# 连接Redis
redis-cli
# 测试连接
127.0.0.1:6379> ping
PONG
# 查看服务器信息
127.0.0.1:6379> info
# 查看特定信息
127.0.0.1:6379> info memory
127.0.0.1:6379> info stats
# 查看配置
127.0.0.1:6379> config get *
# 查看特定配置
127.0.0.1:6379> config get maxmemory
6.2 性能测试 #
bash
# 使用redis-benchmark
redis-benchmark -t set,get -n 100000 -q
# 输出示例:
# SET: 102564.10 requests per second
# GET: 105263.16 requests per second
# 完整性能测试
redis-benchmark -h 127.0.0.1 -p 6379 -c 50 -n 100000
七、常见问题 #
7.1 连接被拒绝 #
bash
# 错误信息
Could not connect to Redis at 127.0.0.1:6379: Connection refused
# 解决方案
# 1. 检查Redis是否启动
ps aux | grep redis
# 2. 检查端口是否监听
netstat -tlnp | grep 6379
# 3. 启动Redis
redis-server /etc/redis/redis.conf
7.2 内存不足 #
bash
# 错误信息
OOM command not allowed when used memory > 'maxmemory'
# 解决方案
# 1. 增加maxmemory配置
redis-cli config set maxmemory 4gb
# 2. 设置淘汰策略
redis-cli config set maxmemory-policy allkeys-lru
7.3 权限问题 #
bash
# 错误信息
NOAUTH Authentication required
# 解决方案
# 使用密码连接
redis-cli -a yourpassword
# 或连接后认证
redis-cli
127.0.0.1:6379> auth yourpassword
八、总结 #
安装要点:
| 系统 | 推荐方式 |
|---|---|
| Ubuntu/Debian | apt install |
| CentOS/RHEL | yum install |
| macOS | brew install |
| Windows | WSL或Docker |
| 生产环境 | 源码编译或Docker |
配置要点:
| 配置项 | 推荐值 |
|---|---|
| bind | 内网地址 |
| protected-mode | yes |
| requirepass | 设置强密码 |
| maxmemory | 物理内存的60-80% |
| maxmemory-policy | allkeys-lru |
下一步,让我们学习Redis的基础语法!
最后更新:2026-03-27