laravel框架总结 -- 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是否存在这个键
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Laravel中,可以通过使用Laravel自带的Redis Facade来操作Redis数据库。首先,确保你已经在配置文件中正确配置了Redis连接信息。然后,你可以使用以下方法来操作Redis数据库。 1. 设置值:使用`Redis::set('key', 'value')`方法可以将一个键值对存储到Redis中。 2. 获取值:使用`Redis::get('key')`方法可以获取Redis中指定键的值。 3. 删除值:使用`Redis::del('key')`方法可以从Redis中删除指定的键值对。 4. 判断键是否存在:使用`Redis::exists('key')`方法可以判断一个键是否存在于Redis中。 5. 增加计数器:使用`Redis::incr('key')`方法可以将指定键的值增加1。 6. 减少计数器:使用`Redis::decr('key')`方法可以将指定键的值减少1。 7. 设置过期时间:使用`Redis::expire('key', 'seconds')`方法可以设置指定键的过期时间,单位为秒。 8. 发布与订阅:使用`Redis::publish('channel', 'message')`方法可以向指定频道发布消息,使用`Redis::subscribe(['channel'], 'callback')`方法可以订阅指定频道,并在收到消息时执行回调函数。 以上是一些常用的操作方法,你可以根据实际需求在Laravel使用Redis来实现缓存、计数器、队列等功能。如果你需要更详细的操作方法和示例代码,你可以参考中提供的Laravel Redis学习资料包,其中包含了Redis的客户端软件、Windows压缩包和Linux源码包,可以帮助你更好地学习和使用Redis。 另外,如果你在Windows平台上使用Redis,你可以访问链接中的GitHub页面,找到Redis on Windows部分的超链接release page,并点击进入,这里提供了更多关于在Windows上安装和配置Redis的信息和指导。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [laravel框架使用redis](https://blog.csdn.net/qq_39581763/article/details/89372754)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [【Redis从头学-完结】Redis全景思维导图一览!耗时半个月为Redis初学者准备的专栏!](https://download.csdn.net/download/2302_79094329/88285139)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值