Redis
介绍
Redis 是一个开源的高级键值存储。它通常被称为数据结构服务器,因为键可以包含字符串、哈希、列表、集合和有序集合。
在使用 Laravel 的 Redis 之前,你需要通过 Composer 安装 predis/predis
包 (~1.0)。
如果你通过 PECL 安装了 Redis PHP 扩展,你需要在 config/app.php
文件中重命名 Redis 的别名。
配置
应用程序的 Redis 配置存储在 config/database.php
文件中。在这个文件中,你会看到一个 redis
数组,其中包含应用程序使用的 Redis 服务器:
'redis' => [
'cluster' => true,
'default' => ['host' => '127.0.0.1', 'port' => 6379],
],
默认的服务器配置应该足以用于开发。然而,你可以根据环境自由修改这个数组。只需为每个 Redis 服务器命名,并指定服务器使用的主机和端口。
cluster
选项将告诉 Laravel Redis 客户端在你的 Redis 节点之间执行客户端分片,允许你池化节点并创建大量可用的 RAM。然而,请注意,客户端分片不处理故障转移;因此,主要适用于可以从其他主数据存储中获取的缓存数据。
如果你的 Redis 服务器需要身份验证,你可以通过在 Redis 服务器配置数组中添加 password
键/值对来提供密码。
使用
你可以通过调用 Redis::connection
方法获取 Redis 实例:
$redis = Redis::connection();
这将为你提供默认 Redis 服务器的实例。如果你不使用服务器集群,你可以将服务器名称传递给 connection
方法,以获取 Redis 配置中定义的特定服务器:
$redis = Redis::connection('other');
一旦你有了 Redis 客户端的实例,我们可以向实例发出任何 Redis 命令。Laravel 使用魔术方法将命令传递给 Redis 服务器:
$redis->set('name', 'Taylor');
$name = $redis->get('name');
$values = $redis->lrange('names', 5, 10);
注意,命令的参数只是简单地传递给魔术方法。当然,你不需要使用魔术方法,你也可以使用 command
方法将命令传递给服务器:
$values = $redis->command('lrange', [5, 10]);
当你只是对默认连接执行命令时,只需在 Redis
类上使用静态魔术方法:
Redis::set('name', 'Taylor');
$name = Redis::get('name');
$values = Redis::lrange('names', 5, 10);
管道
当你需要在一次操作中向服务器发送许多命令时,应该使用管道。要开始使用,请使用 pipeline
命令:
向你的服务器发送多个命令
Redis::pipeline(function($pipe)
{
for ($i = 0; $i < 1000; $i++)
{
$pipe->set("key:$i", $i);
}
});