laravel5.2总结--redis使用
一切的前提都是已经安装好了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使用的更多相关文章
- laravel5.7的redis配置,一直报错Class 'Predis\Client' not found
laravel5.7的redis配置,一直报错Class 'Predis\Client' not found 首先我检查了配置,和composer 都没有错,用原生的redis也可以正常连接和读写. ...
- laravel5.6 基于redis,使用消息队列(邮件推送)
邮件发送如何配置参考:https://www.cnblogs.com/clubs/p/10640682.html 用到的用户表: CREATE TABLE `recruit_users` ( `id` ...
- 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密码 ...
- 最新 laravel5.8 连接redis集群
简介 Redis 是一个开源的,高级键值对存储数据库.由于它包含 字符串 , 哈希 , 列表 , 集合 , 和 有序集合 这些数据类型,所以它通常被称为数据结构服务器. 在使用 Laravel 的 R ...
- laravel5.3安装redis扩展包
1,编辑 laravel 根目录下的 composer.json 文件: "require": { "php": ">=5.6.4", ...
- 【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 ...
- 解析laravel之redis简单模块操作
入门级操作 普通 set / get 操作: set操作,如果键名存在,则会覆盖原有的值: $redis = app('redis.connection'); $redis->set('libr ...
- laravel5.8笔记十:Redis操作
> 位置:\vendor\laravel\framework\src\Illuminate\Redis\Connections\PhpRedisConnection.php > 参考:ht ...
- 【laravel5.* + 钉钉实现WEB第三方登录】 使用redis 作为持久化存储
1.去钉钉开发者平台>自助者工具,创建扫码登录授权应用,填写名称.描述.授权页面logo地址(这个图片最后会出现在用户扫码设备中,建议使用压缩图片减少用户加载时间).回调域名(一般都是写一个子域 ...
随机推荐
- 永洪BI——国内领军的一站式大数据分析平台
平台: CentOS 类型: 虚拟机镜像 软件包: jdk-7.79-linux yonghongbi.sh basic software big data business intelligence ...
- HTTPS的加密流程(通俗易懂,不可错过)
为什么要有HTTPS 都说进技术的产生就是为了解决旧技术的一些弊端. HTTP具有相当优秀的一面,但是凡事有利也有弊,在HTTP进行高速通信的过程中可能产生以下几个问题: HTTP采用明文传输.明文传 ...
- MVC下c#对接微信公众平台开发者模式
在ashx文件中进行HttpContext的处理: using System; using System.Collections.Generic; using System.Linq; using S ...
- IP地址与数字地址相互转换
/// <summary> /// IP地址转换成数字 /// </summary> /// <param name="addr">IP地址&l ...
- C基础的练习集及测试答案(提高题)
提高题:1.编写程序,随机生成一个1~10内的数,让对方猜3次.如果3次内能猜中则输出“恭喜你”:若3次内猜不中则输出正确答案.C语言中提供生成随机数的函数rand()用法:①所需头文件:#inclu ...
- linux网卡的配置(解决刚刚安装linux,Xshell连接不上问题)
1.输入用户名和密码 2.cd到网卡文件夹 3.对网卡文件进行编辑 vi ifcfg-eth0 然后 a 进行编辑 然后esc退出,shift+zz保存 4.重启网卡 /etc/init.d/netw ...
- 运维如何延续自己的职业生涯--萧田国2017年GOPS深圳站演讲内容
正如 萧田国在2017年GOPS深圳站演讲所提及的,运维职业生涯规划,应该是T字型. 关于指导原则,正如腾讯好友@赵建春所言: 如果一个领域不能做到TOP,那就是一种伤害. 运维在编程.开发领域,能做 ...
- linux用命令行运行matlab的.mat文件
入m文件所在目录后,运行 $ matlab -nodesktop -nosplash -r matlabfile 只用文件名matlabfile,不能添加.m
- 第十四篇、OC_新闻查看器
PageTitleView: #import <UIKit/UIKit.h> @class GFBPageTitleView; @protocol GFBPageTitleViewDele ...
- aop配置问题引发的报错
今天在使用注解配置aop时出现了几次的错误 INFO - Refreshing org.springframework.context.support.ClassPathXmlApplicationC ...