非常/laravel-phpredis

此包已被废弃且不再维护。未建议替代包。

在Laravel中使用phpredis作为redis连接

v1.1.5 2017-01-13 09:04 UTC

This package is auto-updated.

Last update: 2022-07-08 21:30:48 UTC


README

在Laravel中使用phpredis作为redis连接,支持重试连接 要求

安装

首先,当然,确保服务器上已安装PhpRedis。有关安装说明,请参阅此处

将依赖项添加到 composer.json

"require": {
    "very/laravel-phpredis": "1.*"
}

RedisServiceProvider 添加到 config/app.php(注释掉内置的 RedisServiceProvider

...
'providers' => array(
    ...
    // 'Illuminate\Redis\RedisServiceProvider',
    'Very\Redis\RedisServiceProvider',
    ...
),
...

默认的Facade别名与PhpRedis提供的Redis类冲突。为了修复此问题,请在 config/app.php 中重命名别名

...
'aliases' => array(
    ...
    'Redis'           => 'Illuminate\Support\Facades\Redis', 
    ...
),
...

不幸的是,副作用是您现在需要调用Redis函数,如 Redis::connection(),这看起来不那么优雅,但一切仍然按原样工作(您可以像往常一样调用Redis命令,例如 Redis::get('key'))。

最后运行 composer update 以更新和安装一切。

选项

配置就像Laravel中Redis的默认配置一样。实际上,您可以在不更改配置的情况下在PhpRedis和Predis之间切换(不过对于集群或序列化没有保证)。

所有选项都是可选的,您可以通过指定空数组来获取默认的连接配置

'redis' => array(

    'cluster' => true, // if true a RedisCluster will be created

    'default' => array(
        'host'       => '127.0.0.1', // default: '127.0.0.1'
        'port'       => 6379,        // default: 6379
        'password'   => password     // default: null
        'prefix'     => 'myapp:',    // default: ''
        'database'   => 7,           // default: 0
        'timeout'    => 0.5,         // default: 0 (no timeout)
        'serializer' => 'igbinary'   // default: 'none', possible values: 'none', 'php', 'igbinary'
    ),

),

唯一一个不是自解释的选项是 serializer 选项。这些值直接对应于PhpRedis中的 Redis::SERIALIZER_* 常量。如果您指定 igbinary,则如果PhpRedis通过 --enable-redis-igbinary 编译,则igbinary将用作序列化器,否则将回退到PHP的内置序列化器。