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 第二节 数据类型之数值型
Apr 28 PHP
解析用PHP实现var_export的详细介绍
Jun 20 PHP
php将图片保存入mysql数据库失败的解决方法
Dec 27 PHP
PHP数组游标实现对数组的各种操作详解
Jan 26 PHP
PHP中的表达式简述
May 29 PHP
Yii统计不同类型邮箱数量的方法
Oct 18 PHP
php lcg_value与mt_rand生成0~1随机小数的效果对比分析
Apr 05 PHP
php中青蛙跳台阶的问题解决方法
Oct 14 PHP
PHP使用 Pear 进行安装和卸载包的方法详解
Jul 08 PHP
PHP+Redis开发的书签案例实战详解
Jul 09 PHP
PHP框架实现WebSocket在线聊天通讯系统
Nov 21 PHP
基于PHP实现短信验证码发送次数限制
Jul 11 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
Symfony2使用第三方库Upload制作图片上传实例详解
2016/02/04 PHP
Laravel5.0+框架邮件发送功能实现方法图文与实例详解
2019/04/23 PHP
Laravel Reponse响应客户端示例详解
2020/09/03 PHP
纯CSS打造的导航菜单(附jquery版)
2010/08/07 Javascript
JS格式化数字保留两位小数点示例代码
2013/10/15 Javascript
Extjs Label的 fieldLabel和html属性值对齐的方法
2014/06/15 Javascript
JS+CSS实现感应鼠标渐变显示DIV层的方法
2015/02/20 Javascript
提交按钮的name='submit'引起的js失效问题及原因
2015/02/25 Javascript
不得不分享的JavaScript常用方法函数集(上)
2015/12/23 Javascript
Bootstrap模态对话框的简单使用
2016/04/29 Javascript
一个例子轻松学会Vue.js
2017/01/02 Javascript
浅谈箭头函数写法在ReactJs中的使用
2017/08/22 Javascript
Vue.js devtool插件安装后无法使用的解决办法
2017/11/27 Javascript
angular.js和vue.js中实现函数去抖示例(debounce)
2018/01/18 Javascript
vue多页面开发和打包正确处理方法
2018/04/20 Javascript
laydate如何根据开始时间或者结束时间限制范围
2018/11/15 Javascript
微信小程序解析富文本过程详解
2019/07/13 Javascript
在Vue中使用this.$store或者是$route一直报错的解决
2019/11/08 Javascript
javascript实现蒙版与禁止页面滚动
2020/01/11 Javascript
vant 中van-list的用法说明
2020/11/11 Javascript
vue仿携程轮播图效果(滑动轮播,下方高度自适应)
2021/02/11 Vue.js
python数据结构之链表详解
2017/09/12 Python
Python cookbook(数据结构与算法)从序列中移除重复项且保持元素间顺序不变的方法
2018/03/13 Python
使用python采集脚本之家电子书资源并自动下载到本地的实例脚本
2018/10/23 Python
解决pycharm 工具栏Tool中找不到Run manager.py Task的问题
2019/07/01 Python
python挖矿算力测试程序详解
2019/07/03 Python
Python中常用的高阶函数实例详解
2020/02/21 Python
Python模拟键盘输入自动登录TGP
2020/11/27 Python
10个python爬虫入门基础代码实例 + 1个简单的python爬虫完整实例
2020/12/16 Python
CSS3教程(6):创建网站多列
2009/04/02 HTML / CSS
HTML5播放实现rtmp流直播
2020/06/16 HTML / CSS
What's the difference between an interface and abstract class? (接口与抽象类有什么区别)
2012/10/29 面试题
总经理文秘岗位职责
2014/02/03 职场文书
高等教育学专业自荐书
2014/06/17 职场文书
世界遗产导游词
2015/02/13 职场文书
Python词云的正确实现方法实例
2021/05/08 Python