Laravel 中使用 Redis 数据库
一、前言
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);
}
});
其它的使用,大家如果有兴趣可以自己进行继续摸索!
本文首发于马燕龙个人博客,欢迎分享,转载请标明出处。
马燕龙个人博客:http://www.mayanlong.com
马燕龙个人微博:http://weibo.com/imayanlong
马燕龙Github主页:https://github.com/yanlongma
Laravel 中使用 Redis 数据库的更多相关文章
- spring-java项目中连接redis数据库
最近由于项目需要,要从redis数据库中查询一些数据,还没有了解过redis,只好硬着头皮上阵,记录一下连接过程: 1.需要导入两个jar包:jedis.jar,spring-data-redis.j ...
- C#.Net Core 操作Docker中的redis数据库
做软件开发的人,会在本机安装很多开发时要用到的软件,比如数据库,有MS SQL Server,MySQL,等,如果每种数据库都按照在本机确实有点乱,这个时候我们就想用虚拟机来隔离,这样就不会扰乱本机一 ...
- Spring Boot中使用Redis数据库
引入依赖 Spring Boot提供的数据访问框架Spring Data Redis基于Jedis.可以通过引入spring-boot-starter-redis来配置依赖关系. <depend ...
- Laravel中使用Redis
安装PHP PRedis PRedis是laravel访问redis的扩展包,只需要下载原码即可,不需要安装PHP扩展(如php-redis.so).但在这之前需要了解一个composer,因为lar ...
- Laravel中如何做数据库迁移
总的来说,做一次独立数据库迁移只需要三步,分别是创建迁移文件.修改迁移文件.运行迁移 1.创建数据库迁移文件php artisan make:migration create_articles_tab ...
- laravel中如何使用Redis(Redis是什么)
laravel中如何使用Redis(Redis是什么) 一.总结 一句话总结: 基于内存亦可持久化键值数据库 Redis是完全开源免费的,遵守BSD协议,是一个高性能的键值数据库.是当前最热门的的的N ...
- Laravel中Redis的使用
安装 laravel中使用redis首先需要你通过 Composer 安装 predis/predis 包: composer require predis/predis 配置 redis的配置文件是 ...
- laravel中redis各方法的使用
在laravel中使用redis自带方法的时候会发现许多原生的方法都不存在了,laravel对其进行了重新的封装但是在文档中并没有找到相关的资料最后在 \vendor\predis\predis\sr ...
- 在Ubuntu中安装Redis
原文地址:http://blog.fens.me/linux-redis-install/ 在Ubuntu中安装Redis R利剑NoSQL系列文章,主要介绍通过R语言连接使用nosql数据库.涉及的 ...
随机推荐
- YIi2 Pjax简单使用
1.点击事件需要在Pjax::begin() 和Pjax::end()范围内 2.需要在链接配置数组后加上 ['data-pjax'=>'#testPjax'] 其中,'#testPjax‘是 ...
- Seajs使用实例入门介绍
本文所用例子的代码目录结构: seajs example |--sea-module //存在依赖文件 |--jquery |--jqeury.js |--sea.js |--static //存放自 ...
- Redis(2015.08.03笔记一)
一.redis简介 Redis是一种面向"键/值"对数据类型的内存数据库,可以满足我们对海量数据的读写需求. redis的键只能是字符串 redis的值支持多种数据类型: 1:字符 ...
- Java 异常处理 try catch finally throws throw 的使用和解读(一)
//最近的一个内部表决系统开发过程中,//发现对异常处理还存在一些模棱两可的地方,//所以想着整理一下//主要涉及到://1.try catch finally throws throw 的使用和解读 ...
- 使用Atom打造无懈可击的Markdown编辑器
一直以来都奢想拥有一款全能好用的Markdown编辑器,直到遇到了Atom.废话不多说,直接开搞! 1. 安装Atom 下载安装Atom:https://atom.io/ 2. 增强预览(markdo ...
- keystone无法查看catalog并且用户无法申请令牌的解决方案
在运行openstack catalog list之后提示: Only an authorized user may issue a new token. #只有授权用户才能申请token opens ...
- Vijos1327回文词【动态规划】
回文词 回文词是一种对称的字符串--也就是说,一个回文词,从左到右读和从右到左读得到的 结果是一样的.任意给定一个字符串,通过插入若干字符,都可以变成一个回文词.你的任务是写 一个程序,求出将给定字符 ...
- Truncated incorrect DOUBLE value错误
mysql报错:Truncated incorrect DOUBLE value sql的update语法错误eg: update Person set name = 'auhnayuiL' and ...
- WPF之路二: button添加背景图片点击后图片闪烁问题
在为button添加背景图片的时候,点击后发现图片闪烁,我们仔细观察,其实Button不仅仅只是在点击后会闪烁,在其通过点击或按Tab键获得焦点后都会闪烁,而通过点击其他按钮或通过按Tab键让Butt ...
- 老李知识普及:web安全性的两大权威组织
老李知识普及:web安全性的两大权威组织 两个重要的WEB应用安全组织-WASC/OWASPWeb Application Security Consortium (WASC)a.WEB应用安全标准的 ...