redis 細粒度鎖

2021-07-25 13:43:54 字數 794 閱讀 1117

上一節我描述了粗粒度鎖,並且描述了它的缺點。這一節我將使用細粒度鎖來處理上一節中粗粒度鎖所帶來的問題。

我們可以為集合中的每個資源提供乙個鎖,這樣可以避免每次的操作都會鎖住所有的資源,其次我們為每乙個鎖設定乙個超時時間,避免死鎖情況的出現。

下面看一下**

/**

* 鎖定資料

*@param key

*@param field

*@return

*/public boolean lock(string key,string field,timeunit timeunit,long time,int num)

long ttltime = redistemplate.getexpire(lockutils.ttllockkey(key,field),timeunit);

if(-1 == ttltime)

}while(flag++ < num);

return

false;

}

/**

* 釋放鎖

*@param key

*@param field

*@return

*/public

void

unlock(string key,string field)

這裡我們只是討論了對於其中一種資源的鎖,如果我們一次要操作多個資源呢?如果依次去獲取,那麼會導致死鎖的發生。有興趣的小夥伴可以思考一下如何同時處理集合中的多個資源。當然最簡單的辦法是採用粗粒度鎖,每次都鎖住整個集合

細粒度審計

細粒度審計 fga 通過 oracle9i 引入 可以理解為 基於策略的審計 與標準的審計功能相反,fga 可用於指定生成審計記錄必需的條件 fga 策略通過使用 dbms fga 程式包以程式設計方式繫結到物件 表 檢視 類似於用於通過 vpd dbms rls 進行訪問控制的程式包,它允許您建立...

細粒度許可權管理

表1 許可權對映表 表名 tbl res map 許可權對映 類別 表 欄位名 字段別名 資料型別 主鍵 允許空 顯示 預設值 說明 pid 許可權編碼 varchar 50 y n n service view 資源 varchar 50 y n n explain 說明 varchar 50 y...

oracle細粒度審計

建立審計表空間 tablespace created.connect as sysdba sql alter table aud move tablespace audittbs table altered.sql alter table audit move tablespace audittbs...