paunin/laravel-ps-redis

为 Laravel 提供的简单哨兵/Redis 驱动包装器。

2.0.0 2017-02-02 09:32 UTC

This package is not auto-updated.

Last update: 2024-09-28 19:52:53 UTC


README

! 仅适用于 laravel/lumen >= 5.4,对于之前的 laravel/lumen 版本,请使用包的 1.* 版本 https://github.com/Indatus/laravel-PSRedis

为 Laravel 提供的简单哨兵/Redis 驱动包装器。

默认的 Laravel Redis 驱动支持 Redis 集群,但它不支持与 Redis 的高可用性,这正是 Laravel-PSRedis 发挥作用的地方。

使用 Laravel-PSRedis,您将获得所有 Laravel Redis 魔法,例如 Redis::set()Redis::get(),以及使用 Redis 进行会话、队列和缓存支持,您将能够利用高可用 Redis 实例而不是简单的集群。

我们通过在 IOC 容器中创建 Redis 绑定之前向您的 Redis 哨兵 询问您的 master 位置来实现这一点。通过这样做,我们确保您的应用程序与 Redis 实例建立连接时,该连接是到 master。

README 内容

## 安装### Laravel 5 的安装

您可以轻松使用 Composer 安装 Laravel-PSRedis。

 composer require paunin/laravel-ps-redis 

## 配置

接下来,只需在应用程序中已存在的配置文件 app/config/database.php 中填写您的哨兵/Redis 服务器信息。

您可能在数据库配置文件中已经设置了某些默认的 Laravel 配置值,如下所示。

/* |-------------------------------------------------------------------------- | Redis 数据库 |-------------------------------------------------------------------------- | | Redis 是一个开源、快速、高级的键值存储,它还提供了一组比典型的键值系统(如 APC 或 Memcached)更丰富的命令。Laravel 使其易于使用。 | */ 'redis' => [ 'cluster' => false, 'default' => [ 'host' => '127.0.0.1', 'port' => 6379, 'database' => 0, ], ], 

删除它,并为 Redis 创建一个单独的配置文件 config/redis.php

<?php # config/redis.php return [ 'nodeSetName' => env('SENTINEL_NODE_SET_NAME', 'mymaster'), 'cluster' => false, // 哨兵节点 'masters' => sentinels(env('SENTINELS', '')), 'password' => env('REDIS_PASSWORD', null), 'port' => env('REDIS_PORT', 26379), 'database' => env('REDIS_DATABASE', 0), /** 等待并重试连接到 master 的时间长度 */ 'backoff-strategy' => [ 'max-attempts' => env('SENTINEL_MAX_ATTEMPTS', 10), // 寻找 master 的最大尝试次数 'wait-time' => env('SENTINEL_WAIT_TIME', 500), // 下一次尝试等待的时间(毫秒) 'increment' => env('SENTINEL_INCREMENT', 1.5), // 每次尝试增加的退避时间乘数 ], ]; 
### 服务提供者

最后,您只需将服务提供者添加到 app.php 中的 providers 数组中,并注释或删除 Redis 服务提供者。

$app->register(LaravelPSRedis\LaravelPSRedisServiceProvider::class);