vetruvet / laravel-phpredis
在Laravel中使用phpredis作为Redis连接
Requires
- ext-redis: *
- illuminate/redis: 5.* || 4.*
- illuminate/support: 5.* || 4.*
This package is not auto-updated.
Last update: 2024-09-14 15:58:01 UTC
README
Laravel默认使用Predis连接到Redis。
在已安装PhpRedis的服务器上,您可能希望使用它而不是Predis以提高性能。此包为Laravel附带的RedisServiceProvider
提供了一种替代方案。
要求
- PHP 5.3+
- PhpRedis
- Laravel 4.x/5.x
安装
首先,当然,请确保服务器上已安装PhpRedis。有关安装说明,请参阅此处。
将依赖项添加到composer.json
"require": {
"vetruvet/laravel-phpredis": "1.*"
}
将PhpRedisServiceProvider
添加到config/app.php
(取消注释内置的RedisServiceProvider
)
...
'providers' => array(
...
// 'Illuminate\Redis\RedisServiceProvider',
'Vetruvet\PhpRedis\PhpRedisServiceProvider',
...
),
...
默认的Facade别名与PhpRedis提供的Redis类冲突。为了修复此问题,请将config/app.php
中的别名重命名
...
'aliases' => array(
...
'LRedis' => 'Illuminate\Support\Facades\Redis',
...
),
...
一个不幸的副作用是,现在需要调用Redis函数,如LRedis::connection()
,这看起来不太美观或流畅,但一切仍然以相同的方式工作(您可以像往常一样调用Redis命令,例如LRedis::get('key')
)。
最后运行composer update
以更新和安装所有内容。
选项
配置与Laravel中Redis的默认配置相同。事实上,您可以在不更改配置的情况下在PhpRedis和Predis之间切换(但无法保证集群或序列化)。
所有选项都是可选的,您可以通过指定空数组来获取默认连接配置
'redis' => array(
'cluster' => true, // if true a RedisArray 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的内置序列化程序。