Redis配置Ubuntu环境的注意事项
在安装Redis前,需先更新Ubuntu系统包列表,确保获取最新版本的安全补丁和依赖包,避免安装冲突:
sudo apt update && sudo apt upgrade -y
若通过源码编译安装,还需提前安装编译工具链(如build-essential、tcl)和SSL开发库(用于加密通信):
sudo apt install -y build-essential tcl pkg-config libssl-dev
这些依赖是Redis正常编译和运行的基础。
Redis的主配置文件默认位于/etc/redis/redis.conf(apt安装)或/usr/local/redis/etc/redis.conf(源码安装)。修改配置前,建议备份原文件:
sudo cp /etc/redis/redis.conf /etc/redis/redis.conf.bak
使用文本编辑器(如nano或vim)修改配置时,需注意语法规范(如注释用#,键值对用key value格式),避免因格式错误导致Redis无法启动。
127.0.0.1),仅允许本机访问。若需远程访问,可将bind参数修改为0.0.0.0(允许所有IP)或特定内网IP(如192.168.1.100),但需注意暴露风险:bind 0.0.0.0 # 生产环境建议绑定内网IP
6379,若需更改,修改port参数即可(如port 6380),但需同步调整防火墙规则。daemonize设置为yes,使Redis以后台进程方式运行,避免占用终端:daemonize yes
logfile参数指定日志文件路径(如/var/log/redis/redis-server.log),并调整loglevel(如notice,平衡信息量与可读性):logfile "/var/log/redis/redis-server.log"
loglevel notice
日志文件有助于排查Redis运行中的问题(如连接超时、内存不足)。requirepass注释,设置复杂密码(包含大小写字母、数字和特殊字符,长度≥12位),避免使用默认密码或弱密码:requirepass YourStrongPassword@123
修改后,客户端连接时需使用AUTH命令验证密码(如AUTH YourStrongPassword@123)。protected-mode设置为yes(默认值),限制Redis仅接受本地连接;若需远程访问,需配合bind参数和防火墙使用,避免未授权访问:protected-mode yes
ufw(Ubuntu默认防火墙)允许Redis端口(默认6379)的入站流量:sudo ufw allow 6379/tcp
sudo ufw reload
防火墙是防止非法访问的重要屏障。Redis支持两种持久化方式,需根据数据重要性选择:
save参数设置快照频率(如save 900 1表示900秒内至少1次变更则保存),并指定快照文件名(dump.rdb)和存储路径(dir):save 900 1
save 300 100
save 60 10000
dbfilename dump.rdb
dir /var/lib/redis
RDB适合备份和快速恢复,但可能丢失最后一次快照后的数据。appendonly.aof),通过appendfsync参数设置同步频率(如everysec,每秒同步一次,兼顾性能与数据安全性):appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec
AOF适合数据完整性要求高的场景,可通过rewrite命令压缩文件大小。aof-use-rdb-preamble yes),结合RDB的速度和AOF的完整性,推荐开启。maxmemory参数限制Redis使用的最大内存(如512mb),避免占用过多系统内存导致系统崩溃:maxmemory 512mb
maxmemory-policy参数选择淘汰策略(如allkeys-lru,淘汰最近最少使用的键,适合缓存场景):maxmemory-policy allkeys-lru
常见策略还包括volatile-lru(仅淘汰设置了过期时间的键)、allkeys-random(随机淘汰)等。systemctl命令管理服务(apt安装默认启用):sudo systemctl start redis-server # 启动
sudo systemctl stop redis-server # 停止
sudo systemctl restart redis-server # 重启
systemctl enable命令设置Redis开机自动启动,确保系统重启后Redis自动运行:sudo systemctl enable redis-server
systemctl status命令查看Redis服务状态(active (running)表示运行正常):sudo systemctl status redis-server
进程与服务管理是保证Redis持续运行的关键。MGET、MSET命令处理大键时性能下降)。redis-cli工具监控Redis状态:
ping:检查Redis是否存活(返回PONG表示正常)。info:查看Redis详细信息(如内存使用、连接数、命中率)。monitor:实时查看所有客户端的命令执行情况(调试用,生产环境慎用)。