基於ftok 函式唯一鍵值

2021-09-26 07:33:22 字數 472 閱讀 5177

最近弄乙個專案,需要用到共享記憶體和訊息佇列等,唯一鍵值是乙個大問題,linux下提供了ftok函式,為了專案的健壯性,閱讀了《ftok()函式深度解析》, 根據博主的分析,真的存在乙個需要解決的陷阱。

但是在生產環境下

為了防止專案的出現不可預料的情況,必須得想辦法解決。

在專案的每個共享程式中都加入檔案檢測,只要檔案狀態出現變化或者檔案被刪除,都對 ftok得到的鍵值進行一次維護。

建立乙個共享管理程式,當該檔案件出現變化時,對該檔案進行一次維護,並進行全域性廣播,全域性狀態更新一次。

在建立共享佇列id的繫結檔案中儲存唯一id,當檔案被刪除或者被修改,共享管理程式對該檔案進行糾正和相關維護。

上面幾種方法,都可以借鑑,當我認為如果乙個程式能夠完成的事情,就不要所有程式都要做,雖然對併發有好處,但是頻繁的呼叫檔案io本身就是影響程式效能的一件事情

所以不推薦使用第一種方案。

oracle 主鍵 唯一鍵值 唯一索引關係

一般都認為一條資料在表中通過主鍵欄位來唯一確定,但是有時候表中並不存在主鍵,但是重複資料插入也會報錯,檢視表結構發現,通過建立唯一鍵值也可以達到之一目的,但是最近有遇到資料庫中沒有唯一鍵 主鍵,重複資料插入也會報錯,查詢後發現存在唯一索引,也達到了資料唯一的目的 1 主鍵約束和唯一鍵約束均會隱式建立...

主鍵 唯一鍵 唯一索引區別

主鍵 1.可以定義一列或多列為主鍵。不允許空 null 主健可作外健,唯一索引不可 2.定義乙個主鍵將自動建立主鍵索引,主鍵索引是唯一索引的特殊型別。唯一鍵 唯一性約束 1.唯一性約束用來限制不受主鍵約束的列上的資料的唯一性,用於作為訪問某行的可選手段,指定列上都不允許有相同的值,允許空 null ...

關於唯一鍵 Unique

sql create table test ranbo id number table created sql alter table test ranbo add constraint test ranbo uk unique id table altered sql insert into te...