laravel框架总结 -- redis使用
来源:互联网 发布:php 先use namespace 编辑:程序博客网 时间:2024/06/05 20:56
一切的前提都是已经安装好了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是否存在这个键
我自己使用的是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是否存在这个键
阅读全文
0 0
- laravel框架总结 -- redis使用
- laravel框架总结(十三) -- redis使用
- laravel框架使用总结(一)
- Laravel框架的redis使用1
- laravel框架总结 -- composer基本使用
- Laravel 使用Redis 笔记
- Laravel使用redis库
- laravel使用redis配置
- Laravel使用redis库
- Laravel使用Redis
- laravel使用redis
- laravel框架总结一
- laravel框架总结(二)
- laravel框架使用中错误及解决办法总结
- laravel框架使用中错误及解决办法总结 2
- laravel框架初次使用
- laravel框架的使用
- laravel apiato框架使用
- 【Java集合源码剖析】Vector源码剖析
- elk 分析nginx访问和错误日志
- 一个显示数据用的canvas
- StringTokenizer的用法详解
- 娱乐向,利用CentOS7搭建我的世界spigot服务器
- laravel框架总结 -- redis使用
- Unity 3d 的基础语法
- AndroidManifest.xml反编译工具
- 求一个数组的最大子序列
- POJ 3356 AGTC(dp之公共最长子序列)
- 【Java集合源码剖析】HashMap源码剖析
- 容易忘记的命令
- 解决各大浏览器下载文件乱码以及Firefox下载文件名不全问题
- 在移动设备中创建ArcGIS API for JavaScript地图应用程序