2026/5/18 10:56:33
网站建设
项目流程
网页游戏网站开发,泉州做网站公司,美妆网站建设规划,试用平台网站建设前言
Redis作为高性能的键值对内存数据库#xff0c;在现代Web架构中扮演着重要角色。本文将提供从源码编译到包管理器安装的完整方案#xff0c;包含主从复制、持久化配置、性能优化等生产级设置#xff0c;助你快速搭建高可用的Redis服务。
一、安装前准备
系统要求检查…前言Redis作为高性能的键值对内存数据库在现代Web架构中扮演着重要角色。本文将提供从源码编译到包管理器安装的完整方案包含主从复制、持久化配置、性能优化等生产级设置助你快速搭建高可用的Redis服务。一、安装前准备系统要求检查bash检查系统版本和架构cat /etc/os-releaseuname -m # x86_64或aarch64检查内存大小建议至少2GBfree -h2. 环境准备bash安装编译依赖sudo apt update # Ubuntu/Debiansudo apt install build-essential tcl -ysudo yum install gcc make tcl -y # CentOS/RHEL二、安装方法对比方案对比表方法 优点 缺点 适用场景源码编译 版本灵活最新特性 步骤复杂需手动配置 开发测试、特定版本需求包管理器 简单快捷自动管理 版本可能较旧 生产环境、快速部署Docker 环境隔离一键部署 性能略有损耗 容器化环境三、方法一源码编译安装最新稳定版下载与解压bash创建安装目录mkdir -p /opt/rediscd /opt/redis下载Redis 7.x稳定版wget https://download.redis.io/redis-stable.tar.gztar -xzf redis-stable.tar.gzcd redis-stable目录结构预览textredis-stable/├── src/ # 源代码├── tests/ # 测试文件├── redis.conf # 配置文件模板└── README.md2. 编译与安装bash编译Redis需要gcc编译器make -j$(nproc) # 使用所有CPU核心加速编译测试编译结果可选但推荐make test安装到系统目录sudo make install编译过程示意图textCC Makefile.depCC adlist.oCC quicklist.oCC ae.o…约30个文件LINK redis-serverINSTALL redis-sentinelINSTALL redis-cli3. 验证安装bash查看版本redis-server --version输出Redis server v7.0.x shaxxxxxx bits64启动Redis服务端redis-server成功启动标志text…Ready to accept connectionsDB loaded from disk: 0.001 seconds四、方法二包管理器安装推荐生产环境Ubuntu/Debian 安装bash添加官方PPA获取最新版本sudo add-apt-repository ppa:redislabs/redis -ysudo apt update安装Redissudo apt install redis-server -y验证安装redis-cli ping返回PONGCentOS/RHEL 安装bash启用EPEL仓库sudo yum install epel-release -y安装Redissudo yum install redis -y或使用Remi仓库更新版本sudo yum install https://rpms.remirepo.net/enterprise/remi-release-8.rpm -ysudo yum --enablereporemi install redis -y3. 服务管理bash启动服务sudo systemctl start redis # Ubuntu 16.04/CentOS 7或sudo service redis start # 旧版本设置开机自启sudo systemctl enable redis查看服务状态sudo systemctl status redis服务状态正常显示text● redis.service - Redis In-Memory Data StoreLoaded: loaded (/lib/systemd/system/redis.service; enabled; vendor preset: enabled)Active: active (running) since Mon 2023-10-01 10:00:00 CST; 1min ago五、基础配置与优化配置文件位置bashUbuntu/Debian/etc/redis/redis.confCentOS/RHEL/etc/redis.conf源码安装默认/opt/redis/redis-stable/redis.conf2. 关键配置项详解bash备份原配置sudo cp /etc/redis/redis.conf /etc/redis/redis.conf.backup编辑配置文件sudo nano /etc/redis/redis.conf必须修改的配置ini绑定地址生产环境建议具体IPbind 127.0.0.1 # 仅本地访问或 bind 0.0.0.0 # 允许所有IP需配合防火墙保护模式外网访问需关闭protected-mode no端口设置port 6379守护进程模式后台运行daemonize yes日志文件logfile /var/log/redis/redis-server.log数据持久化目录dir /var/lib/redis最大内存设置maxmemory 2gbmaxmemory-policy allkeys-lru认证密码生产环境必须requirepass YourStrongPassword123!3. 数据目录设置bash创建数据目录sudo mkdir -p /var/lib/redissudo chown redis:redis /var/lib/redis # Ubuntu或 sudo chown redis:redis /var/lib/redis # CentOS创建日志目录sudo mkdir -p /var/log/redissudo chown redis:redis /var/log/redis六、Redis 持久化配置RDB 快照配置ini在redis.conf中添加save 900 1 # 900秒内至少1个key变化save 300 10 # 300秒内至少10个key变化save 60 10000 # 60秒内至少10000个key变化RDB文件名称dbfilename dump.rdb压缩RDB文件rdbcompression yes2. AOF 追加日志配置ini启用AOFappendonly yesAOF文件名appendfilename “appendonly.aof”同步策略平衡性能与安全appendfsync everysec自动重写AOF文件auto-aof-rewrite-percentage 100auto-aof-rewrite-min-size 64mb3. 混合持久化Redis 4.0iniRDBAOF混合模式aof-use-rdb-preamble yes七、安全加固防火墙配置bashUbuntu UFWsudo ufw allow from 192.168.1.0/24 to any port 6379sudo ufw reloadCentOS Firewalldsudo firewall-cmd --permanent --add-rich-rule‘rule family“ipv4” source address“192.168.1.0/24” port protocol“tcp” port“6379” accept’sudo firewall-cmd --reload2. 重命名危险命令ini禁用或重命名危险命令rename-command FLUSHDB “”rename-command FLUSHALL “”rename-command CONFIG “CONFIG-SECURE”rename-command SHUTDOWN “SHUTDOWN-SECURE”3. TLS加密Redis 6.0bash生成TLS证书openssl genrsa -out redis.key 2048openssl req -new -key redis.key -out redis.csropenssl x509 -req -days 365 -in redis.csr -signkey redis.key -out redis.crt配置文件启用TLStls-port 6379tls-cert-file /path/to/redis.crttls-key-file /path/to/redis.key八、性能测试与监控基准测试bash使用redis-benchmark测试redis-benchmark -h 127.0.0.1 -p 6379 -a YourPassword -t set,get -n 100000 -c 100测试结果示例 SET 100000 requests completed in 1.00 seconds100 parallel clients3 bytes payloadkeep alive: 199.99% 1 milliseconds99999.99 requests per second2. 监控指标查看bash连接Redisredis-cli -a YourPassword查看信息INFOINFO memory # 内存信息INFO stats # 统计信息INFO replication # 复制信息INFO persistence # 持久化信息退出exit3. 安装RedisInsight可视化工具bash下载并安装wget https://download.redisinsight.redis.com/latest/redisinsight-linux64.tar.gztar -xzf redisinsight-linux64.tar.gzcd redisinsight-linux64./redisinsight-linux64访问 http://localhost:5540九、主从复制配置主服务器配置inimaster.confbind 192.168.1.100port 6379requirepass MasterPassword123masterauth SlavePassword4562. 从服务器配置inislave.confbind 192.168.1.101port 6379requirepass SlavePassword456指定主服务器slaveof 192.168.1.100 6379masterauth MasterPassword123只读模式slave-read-only yes3. 启动与验证bash分别启动主从redis-server /path/to/master.confredis-server /path/to/slave.conf检查复制状态redis-cli -h 192.168.1.100 -a MasterPassword123 INFO replication十、故障排除常见问题解决bash问题1启动失败端口被占用sudo netstat -tulnp | grep :6379sudo kill -9或修改端口问题2内存不足调整配置maxmemory 1gb问题3连接超时检查防火墙和bind设置问题4AOF文件损坏修复命令redis-check-aof --fix appendonly.aof2. 日志分析bash查看错误日志sudo tail -f /var/log/redis/redis-server.log常见日志信息* DB loaded from disk: 0.001 seconds # 启动成功* Background saving started by pid 1234 # RDB保存开始* Client closed connection # 客户端断开* Creating Server TCP listening socket *:6379: bind: Address already in use # 端口冲突性能诊断bash慢日志查询redis-cli -a YourPasswordCONFIG SET slowlog-log-slower-than 10000 # 记录超过10ms的命令SLOWLOG GET 10 # 查看最近10条慢查询十一、备份与恢复手动备份bashRDB备份cp /var/lib/redis/dump.rdb /backup/dump-$(date %Y%m%d).rdbAOF备份cp /var/lib/redis/appendonly.aof /backup/aof-$(date %Y%m%d).aof2. 自动备份脚本bash#!/bin/bashredis_backup.shBACKUP_DIR“/backup/redis”DATE$(date %Y%m%d_%H%M%S)执行BGSAVEredis-cli -a YourPassword BGSAVE等待保存完成sleep 10复制RDB文件cp /var/lib/redis/dump.rdbKaTeX parse error: Expected group after _ at position 16: BACKUP_DIR/dump_̲DATE.rdb保留最近7天备份find $BACKUP_DIR -name “dump_*.rdb” -mtime 7 -delete3. 恢复数据bash停止Redissudo systemctl stop redis恢复RDB文件cp /backup/dump-20231001.rdb /var/lib/redis/dump.rdb修改文件权限chown redis:redis /var/lib/redis/dump.rdb启动Redissudo systemctl start redis安装验证清单✅ 基础检查Redis服务正常运行sudo systemctl status redis可以连接redis-cli ping 返回 PONG版本正确redis-server --version✅ 安全配置设置了认证密码绑定了特定IP或启用了保护模式防火墙已配置危险命令已重命名✅ 持久化配置RDB或AOF已启用数据目录权限正确备份脚本已测试✅ 性能优化内存限制已设置淘汰策略合理日志路径正确总结建议生产环境建议使用包管理器安装自定义配置开发环境使用Docker快速部署内存规划预留20-30%内存给系统监控必备设置Redis监控告警定期维护清理碎片检查备份