NESS 发表于 2015-3-25 11:24:15

临时数据的存储方式选择

在不断的接触并熟悉项目代码之后,发现项目中对于临时数据的存储所使用的方式并不是唯一的。Erlang存储临时数据的方法有多种,个人接触到的有如下三种:1.          进程字典2.          ETS表3.          把数据保存到记录中进程字典是进程的私有数据存储,它是由一系列键值对组成的关联数组,一个键对应一个值,当进程消失时,数据也会随之丢失。ETS向我们提供了大型的“键-值”搜索表,它实际上就是一系列的Erlang元组,当表释放时,数据也会丢失。记录把名称与元组中的元素一一对应起来,它在本质上仍旧是元组,记录属于创建它的进程,当进程消失时,记录也会被清空。进程字典存储在内存之中,速度相当快,但是不可以被其他进程读取,当进程所使用的数据与其他进程没有关联时,可以使用进程字典来存储数据。反之,当进程使用的数据与其他功能进程有联系时,则应该使用ETS表或者记录,ETS表属于创建它的进程,但是它的默认类型为PROTECTED,别的进程虽然不可以修改它,但是可以读取其中的数据,记录可以被任何进程读取,但是有可能影响运行效率。

youke 发表于 2015-5-23 18:09:17

你好,”记录“是什么?能详细说一下吗?我所知的erlang的记录只有record,而它本身只是一个数据格式,并不能用于临时存储。

茶叶feng 发表于 2018-6-27 23:28:09

youke 发表于 2015-5-23 18:09
你好,”记录“是什么?能详细说一下吗?我所知的erlang的记录只有record,而它本身只是一个数据格式,并不 ...

大兄弟。。。英语老师死得早呀。。。
页: [1]
查看完整版本: 临时数据的存储方式选择