1. Redis简介与安装准备RedisRemote Dictionary Server是一个开源的、基于内存的键值存储系统它可以用作数据库、缓存和消息中间件。作为一个高性能的NoSQL数据库Redis支持多种数据结构包括字符串、哈希、列表、集合、有序集合等并提供了丰富的操作命令。在Linux环境下安装Redis前我们需要做好以下准备工作系统要求推荐使用Linux发行版如CentOS 7.x/8.x、Ubuntu 18.04/20.04等至少1GB可用内存生产环境建议4GB以上需要gcc编译器版本4.9以上依赖安装# CentOS/RHEL yum install -y gcc make tcl # Ubuntu/Debian apt-get update apt-get install -y build-essential tcl下载Redis 官方推荐从Redis官网https://redis.io/download获取最新稳定版源码包。截至2023年最新稳定版本是7.0.x系列。提示生产环境建议使用长期支持版本如6.2.x新版本可能存在未知稳定性问题。2. 详细安装步骤2.1 源码下载与解压首先通过wget下载Redis源码包以7.0.11为例wget https://download.redis.io/releases/redis-7.0.11.tar.gz下载完成后验证文件完整性sha256sum redis-7.0.11.tar.gz # 对比官网提供的校验值解压源码包tar -xzvf redis-7.0.11.tar.gz cd redis-7.0.112.2 编译与安装Redis使用Makefile构建系统编译过程如下make编译完成后进行安装make PREFIX/usr/local/redis install这里有几个关键点需要注意PREFIX参数指定安装目录不指定则默认安装到/usr/local/bin编译过程中如果出现错误通常是缺少依赖导致需要根据错误信息安装相应依赖建议执行make test进行基本功能测试需要tcl依赖2.3 目录结构说明安装完成后/usr/local/redis目录下会有以下重要子目录bin/可执行文件目录redis-serverRedis服务端redis-cliRedis命令行客户端redis-benchmark性能测试工具redis-check-aof/rdb持久化文件检查工具etc/配置文件目录需要手动创建var/运行时文件目录需要手动创建3. 配置与启动3.1 基本配置将源码目录中的示例配置文件复制到安装目录mkdir -p /usr/local/redis/etc cp redis.conf /usr/local/redis/etc/需要修改的关键配置项vim /usr/local/redis/etc/redis.conf主要修改以下参数daemonize yes # 以守护进程方式运行 bind 0.0.0.0 # 允许远程连接 protected-mode no # 关闭保护模式 requirepass yourpassword # 设置访问密码 dir /usr/local/redis/var # 持久化文件存储目录3.2 服务启动使用配置文件启动Redis服务/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf验证服务是否正常运行ps -ef | grep redis netstat -tlnp | grep 63793.3 客户端连接使用redis-cli连接服务/usr/local/redis/bin/redis-cli -a yourpassword在客户端内执行基本测试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 redis4. 系统集成与优化4.1 创建系统服务为了方便管理我们可以创建systemd服务单元vim /etc/systemd/system/redis.service添加以下内容[Unit] DescriptionRedis In-Memory Data Store Afternetwork.target [Service] Userredis Groupredis ExecStart/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf ExecStop/usr/local/redis/bin/redis-cli shutdown Restartalways [Install] WantedBymulti-user.target然后执行useradd -r redis chown -R redis:redis /usr/local/redis systemctl daemon-reload systemctl enable redis systemctl start redis4.2 安全加固建议防火墙配置firewall-cmd --permanent --add-port6379/tcp firewall-cmd --reload禁用危险命令 在redis.conf中添加rename-command FLUSHDB rename-command FLUSHALL rename-command CONFIG 定期备份 设置cron任务定期备份RDB文件0 2 * * * cp /usr/local/redis/var/dump.rdb /backup/redis/dump-$(date \%Y\%m\%d).rdb4.3 性能优化建议内存管理maxmemory 4gb maxmemory-policy allkeys-lru持久化配置appendonly yes appendfsync everysec内核参数优化echo vm.overcommit_memory 1 /etc/sysctl.conf echo net.core.somaxconn 1024 /etc/sysctl.conf sysctl -p5. 常见问题排查5.1 编译错误处理如果make时出现错误常见解决方案缺少依赖# CentOS yum install -y openssl-devel # Ubuntu apt-get install -y libssl-dev编译器版本过低yum install -y centos-release-scl yum install -y devtoolset-9 scl enable devtoolset-9 bash5.2 启动失败排查检查日志文件获取详细错误信息grep -i error /var/log/redis.log常见问题端口冲突netstat -tlnp | grep 6379 kill -9 PID权限问题chown -R redis:redis /usr/local/redis5.3 连接问题如果无法远程连接检查防火墙设置redis.conf中的bind和protected-mode配置密码认证是否正确测试连接telnet your_server_ip 6379 AUTH yourpassword6. 生产环境部署建议在实际生产环境中部署Redis时还需要考虑以下方面高可用方案Redis Sentinel官方推荐的HA方案Redis Cluster分布式解决方案监控方案使用redis-cli的INFO命令获取运行状态集成Prometheus Grafana监控关键指标内存使用、命中率、连接数等备份策略RDB快照 AOF日志组合持久化跨机房备份定期验证备份文件可用性容量规划根据业务需求预估内存用量预留30%以上的内存余量考虑使用Redis的hash分片存储大对象我在实际部署中发现合理配置Redis的maxmemory和eviction policy对系统稳定性至关重要。特别是在内存不足时配置不当可能导致服务雪崩。建议在测试环境充分验证各种边界条件后再上线生产。