linux

LNMP环境下Redis的使用教程

小樊
51
2025-08-31 07:23:18
栏目: 云计算

LNMP环境下Redis使用教程

一、前置准备

确保已搭建好LNMP(Linux+Nginx+MySQL+PHP)环境,且PHP能正常运行。本教程以常见的CentOS/RHEL系统为例,Ubuntu/Debian系统命令略有差异(如yum替换为apt)。

二、安装Redis服务器

1. 安装依赖包

Redis运行需要编译工具及加密库,执行以下命令安装:

# CentOS/RHEL系统
sudo yum install -y gcc gcc-c++ automake pcre pcre-devel zlib zlib-devel openssl openssl-devel

# Ubuntu/Debian系统
sudo apt update
sudo apt install -y build-essential automake libpcre3-dev zlib1g-dev libssl-dev

2. 下载并编译Redis

选择稳定版本的Redis(如5.0.5),下载后编译安装:

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
make
sudo make install

3. 配置Redis

4. 启动Redis服务

# 启动Redis
sudo src/redis-server /etc/redis/redis.conf

# 设置开机自启
sudo echo "src/redis-server /etc/redis/redis.conf" >> /etc/rc.local
sudo chmod +x /etc/rc.local

5. 验证Redis状态

# 连接Redis
sudo src/redis-cli -a yourpassword

# 测试存取数据
127.0.0.1:6379> set test "Hello Redis"
OK
127.0.0.1:6379> get test
"Hello Redis"
127.0.0.1:6379> exit

三、安装PHP Redis扩展

PHP需通过扩展才能与Redis交互,推荐使用phpredis(官方扩展)。

1. 下载并编译扩展

根据PHP版本选择对应的phpredis版本(如7.4对应redis-5.3.7),执行以下命令:

# 下载phpredis(以5.3.7为例)
wget https://pecl.php.net/get/redis-5.3.7.tgz
tar -zxvf redis-5.3.7.tgz
cd redis-5.3.7

# 编译安装
/www/source/php/bin/phpize  # 替换为你的PHP源码路径
./configure --with-php-config=/www/source/php/bin/php-config  # 替换为你的php-config路径
make
sudo make install

2. 配置PHP启用扩展

编辑PHP配置文件(/etc/php.ini/etc/php/7.4/fpm/php.ini,根据PHP运行模式调整):

extension=redis.so

3. 重启PHP服务

# 若使用PHP-FPM
sudo systemctl restart php-fpm

# 若使用Apache
sudo systemctl restart httpd

4. 验证扩展安装

创建info.php文件(/var/www/html/info.php):

<?php phpinfo(); ?>

通过浏览器访问http://your_server_ip/info.php,搜索“redis”,若出现扩展信息则说明安装成功。

四、PHP代码连接Redis

安装完成后,可通过以下代码测试Redis操作:

<?php
// 连接Redis(本地+密码)
$redis = new Redis();
try {
    $redis->connect('127.0.0.1', 6379);
    $redis->auth('yourpassword'); // 若未设置密码可省略
} catch (Exception $e) {
    die("Redis连接失败: " . $e->getMessage());
}

// 存取数据
$redis->set('name', 'John');
$name = $redis->get('name');
echo "Name: " . $name; // 输出: Name: John

// 删除数据
$redis->del('name');

// 关闭连接
$redis->close();
?>

五、常见问题排查

  1. Redis无法连接

    • 检查Redis服务是否启动(ps aux | grep redis);
    • 检查防火墙是否放行6379端口(sudo firewall-cmd --add-port=6379/tcp --permanentsudo firewall-cmd --reload);
    • 检查配置文件中的bindprotected-mode(若远程访问需设为no,但不建议生产环境使用)。
  2. PHP无法加载扩展

    • 检查php.iniextension=redis.so路径是否正确;
    • 检查redis.so是否存在于PHP扩展目录(php -i | grep extension_dir);
    • 查看PHP错误日志(/var/log/php-fpm/error.log)定位问题。
  3. PHP-FPM与Nginx通信问题

    • 确保php-fpm.sock路径与Nginx配置一致(fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;);
    • 检查php-fpm.conf中的listen.allowed_clients是否包含Nginx服务器IP。

通过以上步骤,即可在LNMP环境下完成Redis的安装与使用,利用Redis的高速缓存特性提升Web应用性能。

0
看了该问题的人还看了