多层树状结构多节点加载问题
来源:7-8 分类管理如何改成用无限级树的方式

慕侠2582827
2021-09-20
- 场景
层数:3 ~ 5
每层数量:一层:12,二层:165,三层:2691,四层:9902,五层:9762 - 加载顺序
逐层加载 - 加载方式
目前是第一层和第二层一次性从数据库加载,然后其他层的加载是通过鼠标点击相应的父节点触发访问后台来加载其下一层的子节点。 - 问题:
这个树状结构是被经常且比较频繁访问的。这种加载的方式是否合理?有可以优化的地方么?是否能使用缓存如Redis来存储这个数结构,减少对数据库的访问次数?或者说把数结构同步到Elasticsearch,然后每次都从ES中搜索。
想听下老师的看法和方案。谢谢
写回答
1回答
-
数据量这么大的树肯定不适合一次性加载出来,先加载两层是合理的。
看你这个树型结构是读多还是写多,读多的话肯定是放redis更合理,但不是把整棵树一下子都放缓存,而是有人访问某个结点,就加载其子节点并放入缓存。总共才20000+的数据量,不需要用ES,用数据库+redis够了
如果是写得多的话,不适用redis,树节点一变,缓存要跟着清空
112021-09-20
相似问题