Redis是高性能的内存键值存储系统,常用作数据库缓存、会话存储和消息队列。在VPS上部署Redis可以显著提升网站访问速度,降低数据库负载。本文介绍在搬瓦工VPS上安装和配置Redis的完整流程。
Tip: Redis数据存储在内存中,搬瓦工VPS建议至少512MB内存用于Redis服务。关于Redis加速网站的具体方案,请参考Redis缓存加速教程。
Ubuntu/Debian系统:
apt update
apt install redis-server -y
CentOS/RHEL系统:
# 启用EPEL源
dnf install epel-release -y
# 安装Redis
dnf install redis -y
启动Redis并设置开机自启:
systemctl start redis-server # Ubuntu用redis-server
systemctl start redis # CentOS用redis
systemctl enable redis-server
# 或
systemctl enable redis
验证Redis是否正常运行:
redis-cli ping
# 返回 PONG 表示运行正常
如果需要最新稳定版Redis(7.x),可以使用官方源:
# Ubuntu/Debian添加官方源
apt install -y lsb-release curl gpg
curl -fsSL https://packages.redis.io/gpg | gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | tee /etc/apt/sources.list.d/redis.list
apt update
apt install redis -y
确认安装版本:
redis-server --version
Redis默认没有密码保护,任何可以连接到Redis端口的客户端都能执行命令。必须设置密码:
# 编辑Redis配置文件
nano /etc/redis/redis.conf # Ubuntu/Debian
# 或
nano /etc/redis.conf # CentOS
找到requirepass行,取消注释并设置强密码:
# 设置密码
requirepass YourStrongRedisPassword123
重启Redis使配置生效:
systemctl restart redis-server
测试密码认证:
# 连接时提供密码
redis-cli -a YourStrongRedisPassword123 ping
# 或连接后认证
redis-cli
AUTH YourStrongRedisPassword123
ping
除了设置密码,还应进行以下安全配置:
# 编辑redis.conf
# 仅监听本地连接(默认已设置)
bind 127.0.0.1 ::1
# 禁用危险命令
rename-command FLUSHDB ""
rename-command FLUSHALL ""
rename-command CONFIG "REDIS_CONFIG_b8a2c3"
rename-command DEBUG ""
# 设置最大内存(根据VPS内存调整)
maxmemory 256mb
# 内存满时的淘汰策略
maxmemory-policy allkeys-lru
Tip: 即使Redis只监听127.0.0.1,也务必设置密码。如果VPS上运行的Web应用存在SSRF漏洞,攻击者可通过本地回环地址访问Redis。
Redis支持两种持久化方式,可以防止重启后数据丢失:
RDB快照(默认开启):
# redis.conf中的默认RDB配置
save 3600 1 # 3600秒内有1次修改则保存
save 300 100 # 300秒内有100次修改则保存
save 60 10000 # 60秒内有10000次修改则保存
# RDB文件存储位置
dir /var/lib/redis
dbfilename dump.rdb
AOF日志(推荐开启):
# 开启AOF持久化
appendonly yes
appendfilename "appendonly.aof"
# 同步策略(三选一)
appendfsync everysec # 每秒同步一次(推荐,兼顾性能和安全)
# appendfsync always # 每次写入都同步(最安全但最慢)
# appendfsync no # 由操作系统决定何时同步(性能最好但可能丢数据)
建议同时开启RDB和AOF,RDB用于快速恢复大量数据,AOF保证最小数据丢失。
针对搬瓦工VPS的环境,建议进行以下优化:
# redis.conf优化配置
# 最大客户端连接数
maxclients 128
# TCP连接队列
tcp-backlog 128
# 客户端超时(秒,0表示不超时)
timeout 300
# TCP keepalive
tcp-keepalive 60
# 禁用透明大页(提升性能)
# 在系统层面执行:
echo never > /sys/kernel/mm/transparent_hugepage/enabled
将透明大页设置写入开机脚本使其永久生效:
# 添加到/etc/rc.local或创建systemd服务
echo 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' >> /etc/rc.local
chmod +x /etc/rc.local
# 连接Redis
redis-cli -a YourPassword
# 查看服务器信息
INFO
# 查看内存使用
INFO memory
# 查看所有key数量
DBSIZE
# 查看key列表(生产环境慎用)
KEYS *
# 查看特定key
GET keyname
# 设置key
SET mykey "hello" EX 3600 # 设置带过期时间的key
# 监控实时命令
MONITOR
# 查看慢日志
SLOWLOG GET 10
# 清理过期key统计
INFO keyspace
完成安装和配置后,运行以下命令验证Redis工作状态:
# 检查服务状态
systemctl status redis-server
# 测试读写
redis-cli -a YourPassword SET test "Hello Redis"
redis-cli -a YourPassword GET test
# 查看Redis日志
tail -50 /var/log/redis/redis-server.log
Redis安装完成后,可以配合WordPress或其他PHP应用实现对象缓存加速,具体方案请参考Redis缓存加速网站教程。
Tip: 更多教程请查看新手教程。