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将网址字符串转换成超链接(网址或email)
May 25 PHP
第三章 php操作符与控制结构代码
Dec 30 PHP
php中3种方法统计字符串中每种字符的个数并排序
Aug 27 PHP
PHP中的插件机制原理和实例
Jul 08 PHP
php取得字符串首字母的方法
Mar 25 PHP
php实现将上传word文件转为html的方法
Jun 03 PHP
php实现随机生成易于记忆的密码
Jun 19 PHP
php解析xml 的四种简单方法(附实例)
Jul 11 PHP
Yii2简单实现给表单添加验证码的方法
Jul 18 PHP
Laravel使用消息队列需要注意的一些问题
Dec 13 PHP
Laravel源码解析之路由的使用和示例详解
Sep 27 PHP
禁止直接访问php文件代码分享
May 05 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
PHP 函数语法介绍一
2009/06/14 PHP
php多文件上传功能实现原理及代码
2013/04/18 PHP
ThinkPHP之M方法实例详解
2014/06/20 PHP
thinkphp文件引用与分支结构用法实例
2014/11/26 PHP
PHP中4种常用的抓取网络数据方法
2015/06/04 PHP
PHP实现事件机制实例分析
2015/06/26 PHP
php中通过eval实现字符串格式的计算公式
2017/03/18 PHP
php取出数组单个值的方法
2018/03/12 PHP
jQuery+jqmodal弹出窗口实现代码分明
2010/06/14 Javascript
枚举的实现求得1-1000所有出现1的数字并计算出现1的个数
2013/09/10 Javascript
ECMAScript6函数默认参数
2015/06/12 Javascript
针对初学者的jQuery入门指南
2015/08/15 Javascript
js带缩略图的图片轮播效果代码分享
2015/09/14 Javascript
jquery select2的使用心得(推荐)
2016/12/04 Javascript
jQuery表单插件ajaxForm实例详解
2017/01/17 Javascript
COM组件中调用JavaScript函数详解及实例
2017/02/23 Javascript
Linux CentOS系统下安装node.js与express的方法
2017/04/01 Javascript
js实现前端图片上传即时预览功能
2017/08/02 Javascript
简化vuex的状态管理方案的方法
2018/06/02 Javascript
vue3.0 CLI - 3.2 路由的初级使用教程
2018/09/20 Javascript
利用hasOwnProperty给数组去重的面试题分享
2018/11/05 Javascript
vue基于两个计算属性实现选中和全选功能示例
2019/02/08 Javascript
JS实现查找数组中对象的属性值是否存在示例
2019/05/24 Javascript
vue cli3 调用百度翻译API翻译页面的实现示例
2019/09/13 Javascript
在vue中通过render函数给子组件设置ref操作
2020/11/17 Vue.js
python基于右递归解决八皇后问题的方法
2015/05/25 Python
Python错误: SyntaxError: Non-ASCII character解决办法
2017/06/08 Python
Python编程实现及时获取新邮件的方法示例
2017/08/10 Python
Python抓取框架Scrapy爬虫入门:页面提取
2017/12/01 Python
Python使用matplotlib 模块scatter方法画散点图示例
2019/09/27 Python
python 实现非极大值抑制算法(Non-maximum suppression, NMS)
2020/10/15 Python
详解CSS3弹性伸缩盒
2020/09/21 HTML / CSS
英国在线自行车店:Merlin Cycles
2018/08/20 全球购物
立志成才演讲稿
2014/09/04 职场文书
大学生心理健康活动总结
2015/05/08 职场文书
阿甘正传观后感
2015/06/01 职场文书