多层树状结构多节点加载问题

来源:7-8 分类管理如何改成用无限级树的方式

慕侠2582827

2021-09-20

  • 场景
    层数:3 ~ 5
    每层数量:一层:12,二层:165,三层:2691,四层:9902,五层:9762
  • 加载顺序
    逐层加载
  • 加载方式
    目前是第一层和第二层一次性从数据库加载,然后其他层的加载是通过鼠标点击相应的父节点触发访问后台来加载其下一层的子节点。
  • 问题:
    这个树状结构是被经常且比较频繁访问的。这种加载的方式是否合理?有可以优化的地方么?是否能使用缓存如Redis来存储这个数结构,减少对数据库的访问次数?或者说把数结构同步到Elasticsearch,然后每次都从ES中搜索。

想听下老师的看法和方案。谢谢

写回答

1回答

甲蛙

2021-09-20

数据量这么大的树肯定不适合一次性加载出来,先加载两层是合理的。

看你这个树型结构是读多还是写多,读多的话肯定是放redis更合理,但不是把整棵树一下子都放缓存,而是有人访问某个结点,就加载其子节点并放入缓存。总共才20000+的数据量,不需要用ES,用数据库+redis够了

如果是写得多的话,不适用redis,树节点一变,缓存要跟着清空

下载视频          
1
1
慕侠2582827
非常感谢!
2021-09-20
共1条回复

Spring Cloud+ Vue前后端分离开发企业级在线视频系统

全网稀缺课程 市场热门项目+主流框架 一课掌握前后端技术

1743 学习 · 1698 问题

查看课程