Laravel框架使用Redis的方法详解


Posted in PHP onMay 30, 2018

本文实例讲述了Laravel框架使用Redis的方法。分享给大家供大家参考,具体如下:

安装

laravel中使用redis首先需要你通过 Composer 安装 predis/predis 包:

composer require predis/predis

配置

redis的配置文件是:config/database.php

'redis' => [
    'client' => 'predis',
    'default' => [
      'host' => env('REDIS_HOST', '127.0.0.1'),
      '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集群的问题,先说单个redis的使用。

测试

首先需要一个路由:

//redis测试
Route::get('testRedis','RedisController@testRedis')->name('testRedis');

利用artisan命令创建一个控制器

php artisan make:controller RedisController

然后我们在该控制器中引入对应的类和创建一个方法。

因为我们通过composer安装后,laravel框架已经帮我们将redis在app.php配置文件中进行了注册和门面支持,所以直接使用即可。(Member类是我自己测试的数据表模型,无需理会)

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Member;
use Illuminate\Support\Facades\Redis;
class RedisController extends Controller
{
  public function testRedis()
  {
    Redis::set('name', 'guwenjie');
    $values = Redis::get('name');
    dd($values);
    //输出:"guwenjie"
    //加一个小例子比如网站首页某个人员或者某条新闻日访问量特别高,可以存储进redis,减轻内存压力
    $userinfo = Member::find(1200);
    Redis::set('user_key',$userinfo);
    if(Redis::exists('user_key')){
      $values = Redis::get('user_key');
    }else{
      $values = Member::find(1200);//此处为了测试你可以将id=1200改为另一个id
     }
    dump($values);
  }
}

错误问题

在你做完以上操作运行的时候,也许会报这个错误:

(1/1) ConnectionException
����Ŀ����������ܾ����޷����ӡ� [tcp://127.0.0.1:6379]
in AbstractConnection.php (line 155)
at AbstractConnection->onConnectionError('����Ŀ����������ܾ����޷����ӡ�', 10061)
in StreamConnection.php (line 128)
....

其实这个问题不算问题,但是可能很多人刚用的时候会踩坑。

这是因为你的服务器上没有安装和启动redis服务,就像mysql一样,使用的前提是安装并且成功启动了。

我是在windows下测试的,就以windows说事。后续会写相关的redis文章,Linux的安装,启动使用等都会介绍。

首先下载windows版本:https://redis.io/download

或者使用我下载好的,版本为:4.0.8

github上的4.0.8-windows-redis下载地址:https://github.com/antirez/redis/archive/4.0.8.zip

或者:点击此处本站下载

其实接下来的也就是windows如何安装Redis的教程

将刚刚下载的压缩包解压缩,修改名称为Redis(可不修改)放置到C盘

在该路径下打开cmd窗口,直接输入redis.exe

显示以下内容表示安装并且启动成功。(注意:如果你想在命令行进行操作,应该再打开一个cmd窗口,这个也不能关掉)

如果不想每次都到该目录启动,请配置环境变量即可。

现在你重新运行刚刚的Laravel中的请求就会正常运行。

希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。

PHP 相关文章推荐
一个PHP+MSSQL分页的例子
Oct 09 PHP
php获取mysql数据库中的所有表名的代码
Apr 23 PHP
YII实现分页的方法
Jul 09 PHP
php结合js实现点击超链接执行删除确认操作
Oct 31 PHP
PHP curl CURLOPT_RETURNTRANSFER参数的作用使用实例
Feb 07 PHP
PHP通过串口实现发送短信
Jul 08 PHP
PHP递归实现层级树状展开
Apr 01 PHP
php基于jquery的ajax技术传递json数据简单实例
Apr 15 PHP
3种方法轻松处理php开发中emoji表情的问题
Jul 18 PHP
php网页版聊天软件实现代码
Aug 12 PHP
ThinkPHP5.0 图片上传生成缩略图实例代码说明
Jun 20 PHP
详解PHP神奇又有用的Trait
Mar 25 PHP
php实现微信支付之退款功能
May 30 #PHP
分享5个非常有用的Laravel Blade指令
May 30 #PHP
php实现微信支付之企业付款
May 30 #PHP
ThinkPHP5框架缓存查询操作分析
May 30 #PHP
PHP实现通过CURL上传文件功能示例
May 30 #PHP
php实现微信支付之现金红包
May 30 #PHP
php微信支付之公众号支付功能
May 30 #PHP
You might like
discuz 首页四格:最新话题+最新回复+热门话题+精华文章插件
2007/08/19 PHP
一步一步学习PHP(6) 面向对象
2010/02/16 PHP
PHP编码规范之注释和文件结构说明
2010/07/09 PHP
用PHP编写和读取XML的几种方式
2013/01/12 PHP
php中使用getimagesize获取图片、flash等文件的尺寸信息实例
2014/04/29 PHP
php基于str_pad实现卡号不足位数自动补0的方法
2014/11/12 PHP
Laravel的throttle中间件失效问题解决方法
2016/10/09 PHP
如何在PHP中使用AES加密算法加密数据
2020/06/24 PHP
php实现简单四则运算器
2020/11/29 PHP
一些常用的Javascript函数
2006/12/22 Javascript
用htc组件制作windows选项卡
2007/01/13 Javascript
javascript中attribute和property的区别详解
2014/06/05 Javascript
JavaScript实现数字数组正序排列的方法
2015/04/06 Javascript
JS组件Bootstrap实现弹出框效果代码
2016/04/26 Javascript
JS正则验证多个邮箱完整实例【邮箱用分号隔开】
2017/04/19 Javascript
vue.js 获取select中的value实例
2018/03/01 Javascript
jQuery实现table表格信息的展开和缩小功能示例
2018/07/21 jQuery
简单的React SSR服务器渲染实现
2018/12/11 Javascript
JavaScript实现无限轮播效果
2020/11/19 Javascript
浅述python中argsort()函数的实例用法
2017/03/30 Python
浅谈flask源码之请求过程
2018/07/26 Python
Pandas透视表(pivot_table)详解
2019/07/22 Python
解决python 读取 log日志的编码问题
2019/12/24 Python
python3 简单实现组合设计模式
2020/07/02 Python
使用tensorflow进行音乐类型的分类
2020/08/14 Python
python Selenium 库的使用技巧
2020/10/16 Python
C/C++ 笔试、面试题目大汇总
2015/11/21 面试题
远程调用的原理
2014/07/05 面试题
学生党支部先进事迹
2014/02/04 职场文书
公司会计主管岗位责任制
2014/03/01 职场文书
分公司负责人任命书
2014/06/04 职场文书
赢在执行观后感
2015/06/16 职场文书
副校长2015年教育教学工作总结
2015/07/27 职场文书
Pytorch 中net.train 和 net.eval的使用说明
2021/05/22 Python
vue 实现上传组件
2021/05/31 Vue.js
python神经网络ResNet50模型
2022/05/06 Python