erlang學習筆記 ets和dets

2021-06-26 12:03:28 字數 854 閱讀 9952

ets erlang資料儲存  常駐記憶體

dets 磁碟ets   常駐磁碟 dets的最大檔案大小是2gb dets必須開啟才能使用,用完後還應該正確關閉。

ets 和 dets 表是把鍵值關聯到一起的資料結構。常用操作是插入和查詢 兩者其實就是erlang元組的集合

ets 和 dets是儲存的都是元組。元組裡的某乙個(預設第乙個)被稱為該錶的鍵。通過鍵來向表裡插入和提取元組。

異鍵表:表裡所有的鍵都是唯一的。   有序異鍵 表裡的元組會被排序

同鍵表:允許多個元素擁有相同的鍵。

set 普通異鍵表 ordered_set  有序異鍵表(進行過排序)

bag 普通同鍵表(出現同鍵值的資料會被後者覆蓋)  duplicate_bag 允許出現鍵值相同的同鍵表

建立乙個ets表

ets:new(name,[opt])   name是原子    返回:tableid    

optset | ordered_set | bag | duplicate_bag

private 私有表 只有主管程序才能操作它

public 公有表 任何知道此表標示符(tableid)的程序都能操作它

protectess 受保護的表 任何程序都能讀它 但只有主管程序才能進行讀寫

named_table name 可以被用於後續的表操作

用k作為鍵的位置

例子:tabid=ets:new(test,). 新建名為name的ets表,返回tabid

ets:insert(tabid,). 向tabid表裡插入資料

ets:lookup(tabid,a). 查詢鍵的值為a的資料

ets:delete(tabid). 刪除tabid表

Erlang學習筆記(二)

今天在練習map對映組的時候 本人erlang版本17.01 根據 erlang程式設計 第二版這本書上操作,在取值的時候發現問題,如下 書中操作 如下圖 明顯兩個程式執行不一樣,後來看到官方文件,才發現是這個樣子 在上圖中明確指出,在map對映組中取值的時候用 取值,後來又看了看兩者區別發現兩者只...

Erlang學習筆記(一)

erlang雖然目前還不是主流語言,但有可能在未來一段時間發揮重要的作用.即使你不用erlang,也可以從erlang的設計和erlang的社群的智慧型中得到啟發,就算是從開啟思路,全面認識計算本質和平行計算特性的角度出發,erlang也值得了解.死鎖,競態,越來越多的鎖帶來了越來越複雜的問題.比如...

Erlang學習筆記(二)

erlang的併發特性源自語言本身而並非作業系統。它把現實世界模擬成一系列的程序,其間僅靠交換訊息進行互動,因此erlang簡化了並行程式設計。在erlang世界中,存在並行程序但是沒有鎖,沒有同步方法,也不存在記憶體汙染的可能,因為erlang根本沒有共享記憶體.erlang程式可以由幾百萬個超級...