Laravel 中使用 Redis 数据库

   2017-02-05 0
核心提示:一、前言Redis 是一个开源高效的键值对存储系统,它通常用作为一个数据结构服务器来存储键值对,它可以支持字符串、散列、列表、集合、有序集合。1. 安装 predis/predis在 Laravel 中使用 Redis 之前,你需要通过 Composer 来安装predis/predis包(~1.0):$

一、前言

Redis 是一个开源高效的键值对存储系统,它通常用作为一个数据结构服务器来存储键值对,它可以支持字符串、散列、列表、集合、有序集合。

1. 安装 predis/predis

在 Laravel 中使用 Redis 之前,你需要通过 Composer 来安装 predis/predis 包(~1.0):

$ composer require predis/predis

2. 配置

Redis 的配置文件在 config/database.php 。在该文件中,我们可以看到一个包含 Redis 服务信息的配置数组,如下:

'redis' => [

    'cluster' => false,

    'default' => [
        'host' => env('REDIS_HOST', 'localhost'),
        'password' => env('REDIS_PASSWORD', null),
        'port' => env('REDIS_PORT', 6379),
        'database' => 0,
    ],

],

然后在 .env 文件中配置如下三项为自己的信息:

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

对于开发来说,默认的配置已经完全可以满足大部分的应用了。但是,你可以自由的在你环境中修改这个配置。你可以简单的添加 Redis 服务的名称,并且指定相应的服务器地址和端口。

cluster 选项会告诉 Laravel Redis 客户端在你的 Redis 集群中进行客户端的分片,这样就可以构成节点池并且创建大量有效的 RAM。但是,你需要注意的是客户端分片并不能处理故障转移。因此,它主要用来从一个主要数据存储地址获取可用的缓存数据。

另外,你可以在你的 Redis 连接定义里添加一个 options 数组,这样你可以指定 Predis 的客户端选项。

如果你的 Redis 服务器引入了认证机制,那么你需要在你的 Redis 服务配置数组中添加一个 password 配置项来提供凭证。

二、与 Redis 进行交互

在 Laravel 中,我们可以通过使用 Redis 假面 的各种方法来与 Redis 进行交互。Redis 假面支持动态方法,这意味着我们可以在 Redis 假面上调用任何的 Redis 命令,假面会直接将命令传递给 Redis。

1. 基本使用

下面演示 Redis 的 string 类型使用:

<?php

namespace App\Http\Controllers;

use Illuminate\Support\Facades\Redis;

class RedisController extends Controller
{
    public function set()
    {
        Redis::set('name', 'sean');
    }

    public function get()
    {
        $name = Redis::get('name');
        var_dump($name);
    }
}

2. 使用多个 Redis 连接

可以通过使用 Redis::connection 方法来获取 Redis 的实例:

$redis = Redis::connection();

这会返回默认的 Redis 服务器的实例。如果你没有使用集群服务,你可以传递配置文件中所定义的服务名称到 connection 方法中:

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

3. 管道命令

管道流水线可以允许你在一个操作中对 Redis 服务器执行多个命令。 pipeline 方法接收一个参数: Closure ,它会接收 Redis 的实例。你可以在闭包中发布所有的命令,它们将会在一个操作中进行处理:

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

其它的使用,大家如果有兴趣可以自己进行继续摸索!

 
标签: Redis Laravel
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • RedisTemplate 常用API+事务+陷阱+序列化+pipeline+LUA
    RedisTemplate 常用API+事务+陷阱+序列化+pipel
    https://www.jianshu.com/p/7bf5dc61ca06/https://blog.csdn.net/qq_34021712/article/details/79606551https://www.jianshu.com/p/c9f5718e58f0dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-redis/artifactId/depe
    03-08
  • Redis调用Lua脚本并测试
    一、为什么使用Lua脚本    为了一次通信执行多个Redis命令,我们可以用pipline ,但是多个命令间没有逻辑联系 。    Lua脚本可以一次通信执行多个Redis命令,而且内部可以写自己的逻辑,整个脚本执行是原子性的。 二、命令行调用Lua脚本EVAL script numk
    02-09
  • = 2.2.2 系统默认 ruby 版本过低,导致 Redis 接口安装失败">redis requires Ruby version >= 2.2.2 系统默认 ruby 版本
    = 2.2.2 系统默认 ruby 版本过低,导致 Redis
    输入命令 " gem install redis " 出现 " ERROR:  Error installing redis redis requires Ruby version = 2.2.2. " ,如下图: 根据错误信息可知,Redis需要Ruby版本不能小于2.2.2版本,查看系统默认当前 ruby 版本,输入命令 " ruby -v " , 如下图:当
    02-09
  • Lua 是一个小巧的脚本语言
    

Redis进阶实践之七Redis和Lua初步整合使用
    Lua 是一个小巧的脚本语言 Redis进阶实践
    Redis进阶实践之七Redis和Lua初步整合使用一、引言        Redis学了一段时间了,基本的东西都没问题了。从今天开始讲写一些redis和lua脚本的相关的东西,lua这个脚本是一个好东西,可以运行在任何平台上,也可以嵌入到大多数语言当中,来扩展其功能。
    02-09
  • 扩展Redis的Lua调用方式 redis+lua
    Redis是支持Lua脚本的,但是我以为并不方便。1. SCRIPT LOAD一个字符串拿到一个SHA,首先这个Lua script脚本就很难拿到。Linux一般用cat什么的。但是你作为PHP怎么拿到Lua的代码呢?2. 记录一个SHA,而且SHA是随着Lua代码的变化而变化的。而且给EVALSHA的时候
    02-09
  • redis+lua库存扣减和冲正
    package spring;import org.redisson.Redisson;import org.redisson.api.RScript;import org.redisson.api.RedissonClient;import org.redisson.config.Config;import java.util.ArrayList;import java.util.List;import static org.redisson.api.RScript.Mod
    02-09
  • Nginx 内嵌lua脚本,结合Redis使用
    0x00 Nginx 内嵌Lua脚本有下面特点:20k个并发连接Lua脚本能够在Nignx 11个层次的不同层次发挥作用,扩展Ngnix功能Lua速度极快(寄存器指令)0x01 应用场景在web server端做请求过滤处理(如:WAF、Anti CC等)0x02 简单配置过程測试环境Ubuntu Server 14.04.
    02-09
  • 使用lua脚本和jedis实现redis的hmsetnx命令,操
    redis中set系列命令(包括set,hset等等),基本上都包括两个版本,纯粹的set和setnx, setnx即set not exist, 也就是只有Key不存在时才会执行set, 而不会覆盖原有的值。但是hmset这个命令,包括redis本身,jedis都没有提供nx版本的支持。当然,hset这个命令是有
    02-09
  • 使用Nginx Lua实现redis高性能http接口
    使用Nginx Lua实现redis高性能http接口时间 2015-01-27 18:26:53峰云就她了原文http://xiaorui.cc/2015/01/27/使用nginx-lua实现redis高性能http接口/主题 Lua Nginx HTTP某些时候用python实现的接口性能不够强劲,需要换种方法来提高性能,这不就用lua试试。
    02-09
  • Php+Redis 实现Redis提供的lua脚本功能
    ?phprequire_once "predis-0.8/autoload.php";$config['schema'] = 'tcp';$config['host']= "192.168.1.7";$config['port'] = 6379;$redis = new Predis\Client($config);class wode extends Predis\Command\Sc
    02-09
点击排行