一切的前提都是已经安装好了redis服务器,并且能启动(我只总结了mac的安装方法:传送门)

我自己使用的是mac系统,有个教程可以参考下,传送门:

1.安装PHP PRedis

  1>PRedis是PHP访问redis的扩展包,只需要下载原码即可,不需要安装PHP扩展(如php-redis.so)。

  2>laravel通过Composer来安装第三方程序包(管理依赖关系)

  3>在Laravel项目根目录下运行如下命令使用Composer安装predis依赖包:

  composer require predis/predis 1.0.*

2.配置

  默认情况下,Redis 服务会提供 16 个数据库,Laravel 使用数据库 0 作为缓存和 Session 的存储。当你在执行命令 php artisan cache:clear 的时候,会把 Session 也连带清除了,导致所有用户需要重新登录。我们的目的是让缓存,也就是默认的 Redis 存储到 0 号数据库,Session 存储在 1 号数据库。('database' => 0,'database' => 1)

1>配置redis数据库

应用的Redis配置位于config/database.php,你可以基于环境随意修改该数组,只需要给每个Redis服务器一个名字并指定该Redis服务器使用的主机和接口。

'redis' => [
  'cluster' => false,   //默认的redis服务器
  'default' => [
  'host' => env('REDIS_HOST', 'localhost'),
  'password' => env('REDIS_PASSWORD', null),
  'port' => env('REDIS_PORT', 6379),
  'database' => 0,
  ],   //供session使用的
  'session' => [
  'host' => env('REDIS_HOST', 'localhost'),
  'password' => env('REDIS_PASSWORD', null),
  'port' => env('REDIS_PORT', 6379),
  'database' => 1,
  ],   //配置更多的redis服务器... ],

2>指定session使用数据库

  修改 config/session.php 文件中connection选项为session:如下

  'connection' => 'session',

3>修改 .env 文件的 SESSION_DRIVER 选项为 redis:如下

  SESSION_DRIVER=redis

4>测试一下

  执行以下命令后检查下是否退出登录:

  php artisan cache:clear

3.进一步分析

  另外Redis如果将是作为缓存工具,我们config/cache.php 文件,请注意下面两个配置

'default' => env('CACHE_DRIVER', 'file'),

'stores' => [
  'apc' => [
    'driver' => 'apc',
  ],   'file' => [
    'driver' => 'file',
    'path' => storage_path('framework/cache'),
  ],   // 其它一些配置省略了...   'redis' => [
    'driver' => 'redis',
    'connection' => 'default',
  ],
],

分析:

  1>此时cache使用的是file驱动

  2>stores数组中redis对应的是默认的redis配置(default,config/database.php文件中redis的配置选项)

  改动:我们可以直接改'default' => env('CACHE_DRIVER', 'redis')这样我们的cache就是用了redis进行缓存(先不考虑.env文件的配置)

进一步分析:

  config/session.php 文件下有'driver' => env('SESSION_DRIVER', 'file'),

  config/cache.php文件下有'default' => env('CACHE_DRIVER', 'file'),

  我们在回头看下.env文件,有如下内容    

CACHE_DRIVER=file
SESSION_DRIVER=redis
QUEUE_DRIVER=sync REDIS_HOST=192.168.1.248
REDIS_PASSWORD=null
REDIS_PORT=6379

  我们知道在这里可以刷新原文件进行的一些配置,在.env文件中我们可以配置session和cache使用哪种方式驱动,我们还可以配置redis的服务器地址等等

4.使用redis

  我们可以在Redis门面上以静态方法的方式调用Redis客户端提供的任何命令,然后Laravel使用魔术方法将命令传递给Redis服务器并返回获取的结果。

  使用前提是引入Redis门面

    use Illuminate\Support\Facades\Redis;

  一些基本使用

    Redis::set('key','value'); //存入redis

    Redis::get('key'); //获取redis中的值

    Redis::lLen('key'); //队列的长度

    Redis::rpop('key'); //右侧出队列

    Redis::rpush('key','value'); //右侧存入队列

    Redis::exists($key) //redis是否存在这个键

laravel5.2总结--redis使用的更多相关文章

  1. laravel5.7的redis配置,一直报错Class 'Predis\Client' not found

    laravel5.7的redis配置,一直报错Class 'Predis\Client' not found 首先我检查了配置,和composer 都没有错,用原生的redis也可以正常连接和读写. ...

  2. laravel5.6 基于redis,使用消息队列(邮件推送)

    邮件发送如何配置参考:https://www.cnblogs.com/clubs/p/10640682.html 用到的用户表: CREATE TABLE `recruit_users` ( `id` ...

  3. laravel5.*安装使用Redis以及解决Class 'Predis\Client' not found和Fatal error: Non-static method Redis::set() cannot be called statically错误

    https://phpartisan.cn/news/35.html laravel中我们可以很简单的使用Redis,如何在服务器安装Redis以及原创访问你们可以访问Ubuntu 设置Redis密码 ...

  4. 最新 laravel5.8 连接redis集群

    简介 Redis 是一个开源的,高级键值对存储数据库.由于它包含 字符串 , 哈希 , 列表 , 集合 , 和 有序集合 这些数据类型,所以它通常被称为数据结构服务器. 在使用 Laravel 的 R ...

  5. laravel5.3安装redis扩展包

    1,编辑 laravel 根目录下的 composer.json 文件: "require": { "php": ">=5.6.4", ...

  6. 【laravel5.4】安装指定版本的predis 和 处理laravel5.*安装使用Redis以及解决Class 'Predis\Client' not found和Fatal error: Non-static method Redis::set() cannot be called statically错误

    (predis下载地址:https://packagist.org/packages/predis/predis) 1.cmoposer 命令行: php composer require predi ...

  7. 解析laravel之redis简单模块操作

    入门级操作 普通 set / get 操作: set操作,如果键名存在,则会覆盖原有的值: $redis = app('redis.connection'); $redis->set('libr ...

  8. laravel5.8笔记十:Redis操作

    > 位置:\vendor\laravel\framework\src\Illuminate\Redis\Connections\PhpRedisConnection.php > 参考:ht ...

  9. 【laravel5.* + 钉钉实现WEB第三方登录】 使用redis 作为持久化存储

    1.去钉钉开发者平台>自助者工具,创建扫码登录授权应用,填写名称.描述.授权页面logo地址(这个图片最后会出现在用户扫码设备中,建议使用压缩图片减少用户加载时间).回调域名(一般都是写一个子域 ...

随机推荐

  1. label+input实现按钮开关切换效果

    label+input实现按钮开关切换效果 <!DOCTYPE html> <html lang="en"> <head> <meta c ...

  2. Vue打包后页面出现cannot get

    学习Vue有大半个月了,然而遇到了不少坑,完全没有高手们那么容易,中间有不少值得记录下的东东,回头好好理理.先理下今天的: Vue打包命令简单啊,直接在命令行输入:npm run build 然而没一 ...

  3. sass相关随笔

    安装 下载ruby并且安装 点击这里 打开命令行输入 gem install sass 我使用的是sublime text3 还需要下载三个插件 sass -- 可以帮助你语法高亮 sass buil ...

  4. Django Form 表单

    Form 表单功能 生成HTML表单元素检查表单元素的合法性验证如果错误,重复显示表单数据类型转换 Form相关的对象 Widget 渲染成HTML元素的工具Field Form对象中的一个字段For ...

  5. IOS 绘制基本图形( 画圆、画线、画圆弧、绘制三角形、绘制四边形)

    // 当自定义view第一次显示出来的时候就会调用drawRect方法- (void)drawRect:(CGRect)rect { // 1.获取上下文 CGContextRef ctx = UIG ...

  6. codeforces 599D Spongebob and Squares

    很容易得到n × m的方块数是 然后就是个求和的问题了,枚举两者中小的那个n ≤ m. 然后就是转化成a*m + c = x了.a,m≥0,x ≥ c.最坏是n^3 ≤ x,至于中间会不会爆,测下1e ...

  7. Android(java)学习笔记83:各种边距设置

    1. 各种边距设置: (1)android:layout_paddingLeft 内边距,对谁用,指的是谁的内部内容边距 (2)android:layout_marginLeft 外边距,对谁用,指的 ...

  8. Linux下bash的快捷键

    Ctrl + A  :切换到命令行开始 Ctrl + E :切换到命令行末尾 Ctrl + L : 清屏,相当于clear Ctrl + U :清除剪切光标前的内容 Ctrl + K :剪切清除光标后 ...

  9. 选中ListBox控件中的全部项

    实现效果: 知识运用: ListBox控件的SelectedItems属性 //获取ListBox控件中被选中数据项的集合 public ListBox.SelectedObjectCollectio ...

  10. 使用OpenFileDialog组件打开对话框

    实现效果: 知识运用: OpenFileDialog组件的ShowDialog方法 public DialogResult Show () //返回枚举值 DialogRrsult.OK  或  Di ...