NESS 发表于 2015-3-24 14:26:06

Erlang ETS表相关知识点

在接触的新项目中,大量使用了ETS表用于临时存储Erlang数据,于是对ETS表的相关知识稍作总结。ETS是Erlang用于高效存储大量数据的系统模块之一(另一个是DETS),ETS表中的数据存储是临时的,当表释放时,相应的数据也会被随之丢弃。ETS向我们提供了大型的“键-值”搜索表,一个ETS表实际上就是一系列的Erlang元组,元组中的第一个(默认)为表的键,我们的操作基本都是基于键来实现的,若向表中插入元组,则还需要考虑到表的类型,ETS表共有四种类型:set,orderde set,bag,duplicate bag。四种类型的区别在于,set类型下表中的元组键值都不能相同,ordered set类型下元组会进行排序,bag类型下同一表中的多个元组可以有相同的键值,但是不能有完全相同的两个元组,在duplicate bag类型下同一表中可以存在两个完全相同的元组。一个ETS表隶属于创建它的进程,当进程死掉或者调用了ets:delete,ETS表也会随之被删掉。下面介绍一下表的4种基本操作:1,创建一个新表:ets:new(TabName,)2,向表中插入一个或多个元组:ets:insert(TabName,X)3,在表中查找元组:ets:lookup(TabName,Key)4,释放表:ets:delete(Tab)注:ets:new函数中第二个参数是一个选项列表,取值如下:set/ordered_set/bag/duplicate_bag,表的类型。private/public/protected,表的打开方式,决定对表的读写权限。Named_table,命名表,如果有此选项,则在后面可以用Name操作表。{keypos,K},使用K作为键的位置,通常为1,只有在存储记录时才需要这个选项(记录的第一个元素总是记录名)。打开一个ETS表不带任何选项时,默认选项为。
页: [1]
查看完整版本: Erlang ETS表相关知识点