Skip to content

Redis

介绍

Redis 是一个开源的高级键值存储。它通常被称为数据结构服务器,因为键可以包含 字符串哈希列表集合有序集合

lightbulb

如果您通过 PECL 安装了 Redis PHP 扩展,您需要在 app/config/app.php 文件中重命名 Redis 的别名。

配置

您应用程序的 Redis 配置存储在 app/config/database.php 文件中。在此文件中,您将看到一个 redis 数组,包含您应用程序使用的 Redis 服务器:

php
'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 实例:

php
$redis = Redis::connection();

这将为您提供默认 Redis 服务器的实例。如果您不使用服务器集群,您可以将服务器名称传递给 connection 方法,以获取在 Redis 配置中定义的特定服务器:

php
$redis = Redis::connection('other');

一旦您拥有 Redis 客户端的实例,我们可以对该实例发出任何 Redis 命令

php
$redis->set('name', 'Taylor');

$name = $redis->get('name');

$values = $redis->lrange('names', 5, 10);

请注意,命令的参数只是传递给魔术方法。当然,您不必使用魔术方法,您也可以使用 command 方法将命令传递给服务器:

php
$values = $redis->command('lrange', array(5, 10));

当您只是对默认连接执行命令时,只需在 Redis 类上使用静态魔术方法:

php
Redis::set('name', 'Taylor');

$name = Redis::get('name');

$values = Redis::lrange('names', 5, 10);
lightbulb

Redis 缓存会话 驱动程序与 Laravel 一起提供。

管道

当您需要在一次操作中向服务器发送许多命令时,应使用管道。要开始,请使用 pipeline 命令:

向您的服务器发送多个命令

php
Redis::pipeline(function($pipe)
{
	for ($i = 0; $i < 1000; $i++)
	{
		$pipe->set("key:$i", $i);
	}
});