LNMP环境下Redis安装与集成指南
yum install -y gcc gcc-c++ make automake pcre pcre-devel zlib zlib-devel openssl openssl-devel Ubuntu/Debian系统使用apt替换yum即可。选择Redis稳定版本(如5.0.5),下载并解压到指定目录(如/www/lnmp):
cd /www/lnmp wget http://download.redis.io/releases/redis-5.0.5.tar.gz tar -zxvf redis-5.0.5.tar.gz cd redis-5.0.5 执行编译安装命令,将Redis安装到/usr/local/redis目录:
make mkdir -p /usr/local/redis make install PREFIX=/usr/local/redis 修改Redis配置文件(redis.conf),将daemonize no改为yes(允许Redis以后台守护进程运行):
vim redis.conf # 找到"daemonize no",修改为: daemonize yes 使用配置文件启动Redis,并验证状态:
/usr/local/redis/src/redis-server /usr/local/redis/redis.conf ps -ef | grep redis # 确认进程存在 将Redis启动脚本复制到系统init.d目录,添加开机启动项:
cp utils/redis_init_script /etc/init.d/redis chmod +x /etc/init.d/redis chkconfig --add redis # CentOS 7以下 systemctl enable redis # CentOS 7及以上 测试重启机器后Redis是否自动启动。
通过PECL下载最新稳定版本的PHP Redis扩展(如3.2.8),解压到/www/lnmp目录:
cd /www/lnmp pecl download redis tar -zxvf redis-*.tgz cd redis-* 使用PHPize生成编译配置,指定PHP路径(如/www/source/php),完成编译安装:
/www/source/php/bin/phpize ./configure --with-php-config=/www/source/php/bin/php-config make make install 安装完成后,redis.so文件会生成在PHP扩展目录(如/www/source/php/lib/php/extensions/no-debug-zts-20151012/)。
编辑PHP配置文件(如/www/source/php/lib/php.ini),在extension=后面添加redis.so:
vim /www/source/php/lib/php.ini # 添加以下行: extension=redis.so 重启PHP-FPM和Nginx,使配置生效:
service php-fpm restart service nginx restart 创建info.php文件(<?php phpinfo(); ?>),访问该页面搜索“redis”,若出现Redis扩展信息则说明安装成功。
创建PHP测试文件(如/www/web/index.php),实现缓存逻辑:
<?php $redis = new Redis(); try { $redis->connect('127.0.0.1', 6379); // 连接Redis $key = 'test_key'; $value = $redis->get($key); if ($value === false) { $value = 'Hello, Redis!'; $redis->set($key, $value, 20); // 缓存20秒 echo "Data from MySQL (cached: $value)"; } else { echo "Data from Redis cache: $value"; } } catch (Exception $e) { echo "Redis connection failed: " . $e->getMessage(); } ?> 访问该页面,首次输出“Data from MySQL”,20秒内再次访问输出“Data from Redis cache”,说明Redis缓存功能正常。
redis.conf,添加requirepass yourpassword(替换为强密码),重启Redis后生效。连接时需调用auth方法:$redis->auth('yourpassword'); redis.conf中设置bind 127.0.0.1,仅允许本地访问,避免暴露端口。save命令或BGSAVE指令定期保存数据到磁盘。