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指令定期保存数据到磁盘。