`
wgcode
  • 浏览: 593452 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

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 学习笔记1

    【标题】"Erlang 学习笔记1" 在深入探讨Erlang这一强大的并发编程语言之前,我们先来理解一下Erlang的基本概念。Erlang是由瑞典电信设备制造商Ericsson开发的一种函数式编程语言,它最初设计的目的是为了处理分布式...

    erlang学习笔记

    ### Erlang学习笔记:深入解析Erlang编程与系统管理 #### 1. Erlang编程基础与资源 在深入探讨Erlang编程之前,我们首先需要了解一些基础资源和学习资料。Erlang官方网站([www.erlang.org](http://www.erlang.org...

    Scala、Groovy++、Stackless Python、Erlang 学习笔记及分享

    学习Scala,你需要理解其静态类型的特性、模式匹配、 Actors模型以及类型系统,包括高阶函数、特质(traits)和不可变数据结构。 Groovy是另一种基于JVM的动态编程语言,它的语法简洁,易于阅读和编写。Groovy与...

    erlang学习相关资料

    Joe的那篇erlang论文 Programming Erlang + 源码包 Erlang Programming Concurrent Programming in Erlang efficiecy guide 资源齐全.希望能帮到你.

    erlang学习资料

    Erlang是一种面向并发的、函数式编程语言,由瑞典电信...总的来说,Erlang的学习涉及函数式编程思想、并发处理、分布式系统设计等多个方面,深入学习并实践这些知识点,将使你具备开发高效、可靠的并发应用程序的能力。

    Erlang学习资料

    Erlang学习资料,2本书,不用卖书,电子书足够了

    Erlang语音学习资料汇总

    资源名称:Erlang语音学习资料汇总资源目录:【】Erlang程序设计【】[ManningPublications]ErlangandOTPinAction【】[NoStarchPress]LearnYouSomeErlangforGreatGood!ABeginner'sGuide【】[O'ReillyMedia]...

    Redis全套学习笔记 (带章节目录) 完整版pdf

    本文是一篇关于Redis全套学习笔记的文章,主要介绍了Redis的基础知识、数据结构、持久化、集群、高可用、性能优化等方面的内容。通过本文的学习,读者可以全面掌握Redis的使用和应用,提高自己的技术水平和实践能力...

    erlang 笔记

    ### Erlang程序设计知识点概述 #### 1. Erlang基础语法与函数定义 - **模块定义**: 在Erlang中,所有的代码都包含在模块之中。例如:`-module(tut).` 定义了一个名为`tut`的模块。 - **函数定义与导出**: 函数定义...

    Erlang学习资源

    用于erlang学习资源 一些基本的语言

    erlang入门学习经典资料(很不错)

    ### Erlang 入门学习经典资料解析 #### Erlang 的神秘与起源 Erlang,作为一门相对小众但极具特色的编程语言,自问世以来便伴随着一种神秘的气息。这种神秘感不仅源于它独特的编程范式——函数式编程,还在于其...

    erlang 连接学习例子

    在这个“erlang 连接学习例子”中,我们有两个核心文件:`server.erl` 和 `client.erl`,它们分别代表了一个服务器进程和客户端进程,展示了Erlang中进程间的通信机制。 `server.erl` 文件通常包含一个持续运行的...

    erlang学习2.pdf

    ### Erlang学习知识点总结 #### 一、简介 在文档“erlang学习2.pdf”中,作者通过一系列示例和代码介绍了Erlang语言的基本概念及其在网络编程中的应用。本篇将围绕文档中的核心知识点进行深入解读,主要包括:构建...

    erlang编程 Introducing Erlang

    Simon St. Laurent的《Introducing Erlang》这本书深入浅出地介绍了这些概念,是学习Erlang的理想起点。通过阅读这本书,读者将能够理解Erlang如何处理并发、分布式计算和故障恢复,从而构建高效、健壮的软件系统。

    erlang学习3pdf

    ### Erlang学习:支持多个连接的TableServer及进程通信详解 #### 一、引言 在Erlang的学习过程中,理解和掌握如何构建能够处理多个连接的服务器是非常重要的一步。本篇文档将详细介绍如何通过Erlang语言实现一个...

    erlang学习1.pdf

    ### Erlang学习知识点 #### 一、Erlang简介与安装 - **Erlang**是一种通用、并发、函数式编程语言,适用于构建高可用性系统。它在电信行业有广泛应用,同时也被用于互联网服务、分布式计算等领域。 - **安装步骤**...

    Erlang游戏程序学习完整PDF手册

    这份"Erlang游戏程序学习完整PDF手册"是一份全面介绍Erlang在游戏开发中应用的学习资料,包含了Erlang的基础知识、并发原理以及在游戏开发中的实践案例。 Erlang语言的设计理念源自于Ericsson公司为解决电信系统中...

    erlang资源

    Erlang是一种面向并发的、函数式编程语言,由瑞典...这两本书结合阅读,将为初学者提供一个全面的Erlang学习路径,从基础语法到高级并发编程技巧,有助于深入理解Erlang语言及其在构建高并发、分布式系统中的强大能力。

    erlang_版本24.3.4.4

    学习Erlang时,你需要掌握以下核心概念: - **BEAM虚拟机**:Erlang的运行时系统,全称是BIFs (Built-In Functions)、Erlang、Assembler and Memory管理器。 - **OTP行为**:如Supervisor(监督者)、GenServer...

Global site tag (gtag.js) - Google Analytics