承接 frcstc/luatree 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

frcstc/luatree

Composer 安装命令:

composer require frcstc/luatree

包简介

lua and redis tree

关键字:

README 文档

README

composer require frcstc/luatree

利用 redis + lua实现多层级递归查询

使用方法:

$addNode1 = new AddNode([
  'userId' => 'test1', //用户标识
  'inviteUserId' => 'test2',//上级或邀请人标识
  'userLevelId' => 1, //用户等级
  'childrenIds' => [],// 直属下级
]);
$addNode2 = new AddNode([
  'userId' => 'test2', 
  'inviteUserId' => 'test3',
  'userLevelId' => 2,
  'childrenIds' => ['test1'],
]);
$addNode3 = new AddNode([
  'userId' => 'test3',
  'inviteUserId' => 'test4',
  'userLevelId' => 3,
  'childrenIds' => ['test2'],
]);

$addNode4 = new AddNode([
  'userId' => 'test4',
  'inviteUserId' => '',
  'userLevelId' => 4,
  'childrenIds' => ['test3'],
]);
//存入缓存
$hashKey = "userTestHash"; //redis hset的 key
$treeUtil = new TreeUtil();
$treeUtil->add($hashKey, $addNode1);
$treeUtil->add($hashKey, $addNode2);
$treeUtil->add($hashKey, $addNode3);
$treeUtil->add($hashKey, $addNode4);

// 获取所有父节点
$treeUtil->getParent($hashKey, 'test1');
// 获取所有子节点
$treeUtil->getChildrenList($hashKey, 'test4');

此方案 利用了redis hset 以及lua函数尾调用 来消除栈内存 达到理论上无限递归的可能,优点是可以支持较大数据量,缺点是 数据存储格式固定,可以继承treeUtil 进行扩展

blog:http://www.hzgood.net/blogs

统计信息

  • 总下载量: 5
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 7
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 7
  • Watchers: 1
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2020-06-08

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固