设为首页 收藏本站
查看: 948|回复: 0

[经验分享] laravel5.2总结--redis使用

[复制链接]

尚未签到

发表于 2017-12-20 16:48:47 | 显示全部楼层 |阅读模式
  一切的前提都是已经安装好了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是否存在这个键

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-426121-1-1.html 上篇帖子: Redis之Sentinel高可用安装部署 下篇帖子: [个人翻译]Redis 集群教程(中)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表