Redis
介绍
Redis 是一个开源的高级键值存储。它通常被称为数据结构服务器,因为键可以包含 字符串、哈希、列表、集合 和 有序集合。
如果您通过 PECL 安装了 Redis PHP 扩展,您需要在 app/config/app.php
文件中重命名 Redis 的别名。
配置
您应用程序的 Redis 配置存储在 app/config/database.php 文件中。在此文件中,您将看到一个 redis 数组,包含您应用程序使用的 Redis 服务器:
'redis' => array(
'cluster' => true,
'default' => array('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 命令:
$redis->set('name', 'Taylor');
$name = $redis->get('name');
$values = $redis->lrange('names', 5, 10);
请注意,命令的参数只是传递给魔术方法。当然,您不必使用魔术方法,您也可以使用 command
方法将命令传递给服务器:
$values = $redis->command('lrange', array(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);
}
});