Linux下Redis安装使用,主从模式,哨兵模式与PHP扩展
封面图
•
2025-10-24
•
PHP
266
0
0
0
在 Linux 系统下安装和使用 Redis,配置主从模式、哨兵模式,并集成 PHP 扩展是一个常见的应用场景。以下是一个完整的指南,涵盖安装、配置、测试和 PHP 集成。 --- ## 一、Linux 下 Redis 安装 ### 1.1 安装依赖(Ubuntu/Debian) ```bash sudo apt update sudo apt install build-essential tcl -y ``` ### 1.2 下载 Redis 源码包 ```bash wget https://download.redis.io/redis-stable.tar.gz tar -xzvf redis-stable.tar.gz cd redis-stable ``` ### 1.3 编译安装 ```bash make sudo make install ``` > 如果编译失败,请确保系统中已安装 `gcc` 和 `make`。 --- ## 二、Redis 主从模式配置 ### 2.1 创建多个 Redis 实例 你可以通过复制配置文件并修改端口来创建多个实例: ```bash cp redis.conf redis-master.conf cp redis.conf redis-slave1.conf cp redis.conf redis-slave2.conf ``` ### 2.2 修改配置文件 #### master 节点:`redis-master.conf` ```conf port 6379 daemonize yes pidfile /var/run/redis-master.pid ``` #### slave1 节点:`redis-slave1.conf` ```conf port 6380 daemonize yes pidfile /var/run/redis-slave1.pid slaveof 127.0.0.1 6379 ``` #### slave2 节点:`redis-slave2.conf` ```conf port 6381 daemonize yes pidfile /var/run/redis-slave2.pid slaveof 127.0.0.1 6379 ``` ### 2.3 启动服务 ```bash redis-server redis-master.conf redis-server redis-slave1.conf redis-server redis-slave2.conf ``` ### 2.4 验证主从同步 连接到 master: ```bash redis-cli -p 6379 ``` 设置一个键: ```bash SET key "value" ``` 连接到 slave: ```bash redis-cli -p 6380 GET key ``` 如果返回 `"value"`,说明主从同步正常。 --- ## 三、Redis 哨兵模式配置 ### 3.1 创建哨兵配置文件 ```bash cp redis.conf sentinel.conf ``` ### 3.2 修改 `sentinel.conf` ```conf port 26379 daemonize yes pidfile /var/run/redis-sentinel.pid dir /tmp sentinel monitor mymaster 127.0.0.1 6379 2 sentinel down-after-milliseconds mymaster 5000 sentinel failover-timeout mymaster 10000 sentinel config-epoch mymaster 0 ``` ### 3.3 启动哨兵 ```bash redis-sentinel sentinel.conf ``` ### 3.4 验证哨兵 连接哨兵: ```bash redis-cli -p 26379 SENTINEL masters ``` 你将看到主节点信息,包括状态、IP、端口等。 --- ## 四、PHP 中使用 Redis 扩展 ### 4.1 安装 PHP Redis 扩展 #### 4.1.1 安装 pecl 扩展 ```bash sudo apt install php-dev libpcre3-dev -y sudo pecl install redis ``` #### 4.1.2 添加扩展到 php.ini 编辑 `/etc/php/8.1/cli/php.ini` 或对应版本的配置文件: ```ini extension=redis.so ``` #### 4.1.3 重启 PHP-FPM 或 Apache ```bash sudo systemctl restart php8.1-fpm # 或 sudo systemctl restart apache2 ``` ### 4.2 测试 PHP 连接 Redis 创建 `test.php` 文件: ```php <?php $redis = new Redis(); $redis->connect('127.0.0.1', 6379); $redis->set('test_key', 'Hello from Redis'); echo $redis->get('test_key'); ?> ``` 运行: ```bash php test.php ``` 输出应为 `Hello from Redis`。 --- ## 五、常见问题与注意事项 | 问题 | 解决方法 | |------|----------| | Redis 启动失败 | 检查配置文件中的 `bind` 是否正确,是否开放了防火墙端口 | | PHP 无法加载 Redis 扩展 | 确保 `php.ini` 中有 `extension=redis.so`,并重新启动服务 | | 主从同步失败 | 检查 `slaveof` 配置是否正确,确保主节点可访问 | | 哨兵无法发现主节点 | 检查 `sentinel monitor` 的 IP 和端口是否正确 | --- ## 六、总结 | 功能 | 步骤 | |------|------| | 安装 Redis | 下载源码 → 编译安装 | | 主从模式 | 配置多个实例,设置 `slaveof` | | 哨兵模式 | 使用 `redis-sentinel` 配置自动故障转移 | | PHP 集成 | 安装 Redis 扩展,编写 PHP 脚本连接 Redis | --- 如需更详细的配置或部署生产环境建议,可以进一步提供你的具体需求(如多节点部署、高可用架构等)。需要我帮你生成完整的配置文件模板吗?
上一篇:
centos redis 安装 php-redis扩展安装 及使用
下一篇:
rpm安装httpd,源码安装php关于--with-apxs2参数的问题
标题录入,一次不能超过6条
留言
评论