bdhert/php-bitfield
Composer 安装命令:
composer require bdhert/php-bitfield
包简介
bitfield
README 文档
README
说明
介绍
位域,即使用二进制按照行列的规整结构存储信息的字符串,类比于redis的bitfield结构。本包实现压缩后的位域字符串基本的的增删改查操作。
架构
无任何包依赖
思想
- 使用场景:位域用于压缩存储信息使用,除了这个一般的目的我们可以将位域结合mysql字段进行设计,可以很有效得达到节约空间、高效查询的目的。比如可以简化一对多模型、简化记录表、将静态信息压缩存储等。特别的,在业务中我们经常需要根据数据的记录、状态的真或假来走if条件句,如果我们的数据量很大这时候频繁的IO查询是非常吃性能的,而使用位域的方式存储可以节约几百倍的查询量。
- 位域结构:我使用包头 + 数据的方式。包头占据固定位长105bit,存储片索引、字段数、各字段位数、统计数据等信息。数据由N个数据记录单元组成,这一点跟Mysql一样,每个单元定义固定的几个字段。可以理解为只使用一段字符串把一张表的数据存储下来。建议每段位域串长度不超过mysql的字段长度上限,那么一个位域串大概可以记录一两千条左右的数据。
使用
安装
- composer require bdhert/php-bitfield
- 开发版:composer require bdhert/php-bitfield:"dev-master"
- 基础版:composer require bdhert/php-bitfield:"^0.1"
使用
<?php
use bdhert\PhpBitfield\BitANLS;
use bdhert\PhpBitfield\exception\BitFieldException;
try {
$BA = new BitANLS($str);
$BA->insert([[0 => 1, 2 => 1], [0 => 1, 1 => 1], [0 => 1, 1 => 1, 2 => 0]]);
$BA->where(2, 0)->increment(2);
return $BA->limit(1)->get();
} catch (BitFieldException $e) {
throw new SignException($e->getMessage(), 400);
}
bdhert/php-bitfield 适用场景与选型建议
bdhert/php-bitfield 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 64 次下载、GitHub Stars 达 0, 最近一次更新时间为 2022 年 08 月 05 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 bdhert/php-bitfield 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 bdhert/php-bitfield 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 64
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 9
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2022-08-05