Skip to content
虚位以待
赞助商
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待

Redis

介绍

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

NOTE

如果您通过 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);

NOTE

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

管道

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

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

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