巧用Scope作用域
Laravel中模型中可以定义scope开头方法,这类方法可以通过模型直接调用。这类方法也称作查询作用域。 现在咱们两个方法 /** * 找寻小萝莉 */ public function getLolita() { return $this->where('sex', &#…
Lumen解决容器内部名重复问题
先晒版本 事情起因 系统要引进阿里云的日志系统,去github上淘了一些包,于是选择了这个。 composer require wppd/aliyun-log-php-sdk 于是报了这个错,显示Log的命名重复了。 解决思路 定位Log的命名与服务注册中的Log重名,想办法把服务注册的命名改名。先…
Laravel ORM 中的骚操作
append class User extends Model { protected $appends = ['is_adult']; public function getIsAdultAttribute() { return $this->attribute[…
Redis管道pipeline
redis 是 CS 模式,Redis客户端与Redis之间使用TCP协议进行连接,一个客户端可以通过一个socket连接发起多个请求命令,每个请求命令发出后client通常会阻塞并等待redis服务处理,redis处理完后请求命令后会将结果通过响应报文返回给client,因此当执行多条命令的时候都…
教你个命令 KEYS *
KEYS 命令 Warning: consider KEYS as a command that should only be used in production environments with extreme care. It may ruin performance when it is …
视频学术用语科普
封装格式(AVI MP4 FLV) 封装格式(Format),也称多媒体容器(Multimedia Container),是将已编码压缩好的视频轨道、音频轨道和元数据(视频基本信息如标题、字幕等)按照一定的格式规范,打包放到一个文件中,形成特定文件格式的视频文件。 编码方式(H.26X MPEG A…
Redis有序集合zset底层原理
Redis有序集合中的元素的编码可以是 ziplist 或者 skiplist。ziplist和skiplist编码选择的标准在于Redis里的元素的数量以及元素成员的长度。当满足以下2个条件时,元素编码为ziplist: 有序集合保存的元素数量小于128个 有序集合保存的所有元素成员的长度小于64…
Redis集合set底层原理
集合对象的编码可以是intset和hashtable之一,相对于其他类型的结构集合就要简单的多。 intset编码 intset编码的集合对象底层实现是整数集合,所有元素都保存在整数集合中。 typedef struct intset{ //编码方式 uint32_t encoding; //集合包…
Redi哈希hash底层原理
先明确一个概念叫dict,又称字典(dictionary)或映射(map),是集合的一种;这种集合中每个元素都是KV键值对。 字典dict 在 Redis 中的应用广泛, 使用频率可以说和 SDS 以及双端链表不相上下, 基本上各个功能模块都有用到字典的地方。 其中, 字典dict的主要用途有以下两…
Redis列表list底层原理
在版本3.2之前,Redis 列表list使用两种数据结构作为底层实现: 压缩列表ziplist 双向链表linkedlist 因为双向链表占用的内存比压缩列表要多, 所以当创建新的列表键时, 列表会优先考虑使用压缩列表, 并且在有需要的时候, 才从压缩列表实现转换到双向链表实现。 压缩列表转化成双…