redis使用場景之set(四)---應用於不同類型不重複數據的合併操作,複雜交錯的角色權限校驗

業務場景

集團公司共具有12000名員工,內部OA系統中具有700多個角色,3000多個業務操作,2300多種數據,每位員工具有一個或多個角色,如何快速進行業務操作的權限校驗?

解決方案

  1. 依賴set集合數據不重複的特徵,依賴set集合hash存儲結構特徵完成數據過濾與快速查詢
  2. 根據用戶id獲取用戶所有角色
  3. 根據用戶所有角色獲取用戶所有操作權限放入set集合
  4. 根據用戶所有角色獲取用戶所有數據全選放入set集合

下面的命令,rid:**表示不同的角色,getall、getById等表示權限

sadd rid:001 getall

sadd rid:001 getById

sadd rid:002 getCount

sadd rid:002 getall

sadd rid:002 insert

合併然後存儲新的set中

sunionstore uid:007 rid:001 rid:002

上面的操作是將用戶007角色001和角色002的權限都附加給他,比如007屬於CEO,001是財務,002是銷售經理。這個操作就是把財務和銷售經理的權限都賦給CEO。在賦權後我們要進行校驗,下面提供了兩種不同改的校驗方式。

校驗1:

smembers uid:007

校驗2:

sismember uid:007 insert

推薦使用第一種方式,我們應該將數據和業務分離開來,第一種方式只是單純地取數據,只提供基礎數據,業務實現交給程序。第二種方式已經加入了數據校驗功能。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章