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. 

你可能感兴趣的:(设计模式,框架,应用服务器,erlang,电信)