14 回答
TA贡献1824条经验 获得超8个赞
就个人建议,更加建议使用缓存
- 使用缓存可以配合一些动态更新的套件实现某些数据更新时缓存即时更新
- 使用缓存后期可以直接切换底层持久化方案,不会带来更多的的代码改动
- 使用session涉及到如果用户重新登录时session一旦被更新则需要重新计算
ps: 文件缓存建议分层架构即,应用层表现为kv保存,菜单信息使用json这类的序列化方法作为v存在,底层使用文件储存的方式对应用层的kv数据进行保存
TA贡献1777条经验 获得超10个赞
就我的后台系统说说,因为我大部分系统的后台都是有百八十人的各类型的用户在使用.
先上方案:用户登录后=载入组别json+黑名单权限json=个人菜单.
比如超市系统中的经理,一级管理,二级管理之类,店员,收银员,仓库管理员...之类的.
通常确权清楚的情况下,直接就生成分组级别的json文件.而不是根据用户去生成,这样的话就很省开销了.
但是有时候也有一些特殊情况,比如某个店员被禁止了某个权限从而禁止了某个菜单.
这个时候,还是json文件的菜单,但是附带了一个被过滤权限的json.
所以他显示的是过滤后的菜单.
都是这样设计的,这么多年没有客户反映过问题.
TA贡献1871条经验 获得超8个赞
如果用session的方式会导致分配菜单后不能及时显示,得退出重新登录方可,如果用文件方式,即可分配菜单时删除缓存文件
楼主说到分配权限不能及时更新的问题,其实与用文件缓存还是用session不是一回事。
因为session实现的功能其实也是“缓存”,只要是缓存,就会存在“不及时”的问题,同样,只要你重新分配权限后及时更新缓存,那么,权限分配也就不会有“不及时”的情况出现。
TA贡献1873条经验 获得超9个赞
session可以存储在文件或者Redis等其他缓存系统
这个问题并不是考虑菜单存储问题,
而是考虑菜单是否全局存储并全局共享
通常做法是
- session缓存用户登录权限
- 整个菜单进行缓存
- 根据权限,去对应的用户菜单
- 14 回答
- 0 关注
- 709 浏览
添加回答
举报