首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Erlang学习札记续

2012-12-25 
Erlang学习笔记续?第十五章 ETS 和 DETS 大量数据的存储机制?ETS 和 DETS是Erlang用于高效存储大量Erlang

Erlang学习笔记续

?

第十五章 ETS 和 DETS 大量数据的存储机制

?

ETS 和 DETS是Erlang用于高效存储大量Erlang数据条目的系统模块,ETS是Erlang Term Storage 的缩写,而

DETS是Disk Ets的缩写,它们提供大型的“键 - 值” 搜索表,ETS所不同的是留在内存,DETS驻留在磁盘上。

?

1. 创建:ets : new(name, [Opt]). ?name是一个原子, Opts是表的类型

?? ?插入:insert(Tablename, X) ?X可以是一个元组或者元组的列表。在ETS和DETS中,insert的参数和行为都一样

?? ?查找:lookup(Tablename, Key), 其返回的结果是匹配Key的元组列表。返回元组是因为可以有多个元组使用相同的键,如果没有匹配,则返回一个空列表。

?? ?释放:用完一个表,可以调用dets:close(TableId) 或 ets:delete(TableId)来告诉系统释放这个表。

?

2.表的类型,总共有4种:set 、ordered set、bag、duplicate bag 和 private 、public 、protected、named_table、{keypos, K}

?

set:表中每一个元组的键值都不能相同。

ordered set: ? 在Set的基础上,元组会进行排序。

bag:多个元组可以用相同的键值,但不能有两个完全相同的元组。

duplicate bag:不仅多个元组可以有相同的键值,同一个元组也可以在表中出现多次。

?

3. ETS小程序

start() ->

lists:foreach( fun test_ets/1, [set, ordered_set, bag, duplicate_bag]).

?

test_ets(Mode) ->

TableId = ets:new(test, [Mode]),

ets:insert(TableId, {a, 1}),

List = ets:tab2list(TableId),

io:format("~-13W => ~p~n", [Mode, List]),

ets:delete(TableId).

?

?

第十六章 OTP概述 【框架】 —Erlang的进化

OTP即Open Telecom Platform 电信开放平台, 它是一个应用程序操作系统,包括了大量库和程序用来构建大规模的分布式容错系统。OTP的设计目标是用来构造容错系统。

OTP最核心的概念是行为,一个行为封装某种常见的行为模式,这些行为可以理解为某种应用程序框架,可以通过回调模块来定制这些框架。

首先来仔细研究行为中的一种—gen_server。

(1)用Erlang写一个小的客户/服务器程序。

(2)慢慢抽离这个程序的通用部分,并增加一些特性。

?

1.?

热点排行