首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Laravel 6.11 版本发布,优化了 Redis 多频道广播逻辑

Laravel 6.11 版本发布,优化了 Redis 多频道广播逻辑

作者头像
学院君
发布2020-02-19 11:23:24
1.4K0
发布2020-02-19 11:23:24
举报
文章被收录于专栏:学院君的专栏学院君的专栏

Laravel 官方开发组本周发布了 Laravel 6.11.0 版本,新版本在 Eloquent 模型查询时新增 firstWhere 方法,优化了基于 Redis 的多频道广播,以及一些现有版本的问题修复。

我们先来看一下本次版本发布新增的功能。

1、新增功能

Eloquent firstWhere() 方法

Eloquent 模型现在支持调用 firstWhere 方法,它的功效和 where()->first() 一样,算是一个语法糖:

// 之前这样调用
User::where('emaill', 'foo@bar.com')->first();

// 现在可以这样调用
User::firstWhere('email', 'foo@bar.com');

需要注意的是这个方法仅仅在 Eloquent 模型查询中可用,在数据库查询构建器中不可用。

优化 Redis 多频道广播

在 Laravel 应用中,一次发送事件到多个频道很常见,目前,我们的做法是通过多个发布命令发送完全一样的负载数据到指定 Redis 服务器,这将导致不必要的数据传输,从而带来通信及性能损耗,尤其是负载数据非常大的时候。

所以,最新版本的 Laravel 优化了这个问题,在 RedisBroadcaster 中添加一段 Lua 脚本,允许一次广播数据到多个频道:

2、更新日志

接下来,我们来大致看一下此次版本更新的详细日志。

新增特性
  • 新增 Illuminate\Database\Eloquent\Builder::firstWhere() 方法
  • Redis 支持一次广播数据到多个频道
问题修复
  • 修复 WithFaker::makeFaker() 中的未定义属性
  • 修复 Str::afterLast() 方法
  • 修复 PHP 7.3 插入浮点类型到 MySQL 数据库问题
  • 修复通过自定义中间表属性名刷新模型问题
代码调整
  • 在 Blade 模板中移除所有缩进
  • MailFake::assertNothingSent()MailFake::assertNothingQueued() 中新增可邮寄名称到断言消息
  • assertDatabaseHas() 中搜索类似结果
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-01-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 极客书房 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、新增功能
    • Eloquent firstWhere() 方法
      • 优化 Redis 多频道广播
      • 2、更新日志
        • 新增特性
          • 问题修复
            • 代码调整
            相关产品与服务
            云数据库 Redis
            腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档