Erlang数据结构

时间:2012-02-27 16:54:29

标签: data-structures erlang

我对可以用来快速执行以下任务的数据结构感到有点困惑:

  1. 保存元组(可以更改为包含关键字)。将是{UserInfo,Time,TimeLvl}
  2. 删除知道元组(或关键字)的元素
  3. 更新所有包含的元素,每秒更改一次元组的元素(TimeLvl会在用户等待的时间越长时越高)。
  4. 随着用户来去,包含的数据会发生很大变化。

    此用例的最佳数据结构是什么?

2 个答案:

答案 0 :(得分:2)

看一下这篇文章:Key-Value stores

决定哪种数据结构最适合您。 该文章还提供了一个基准。

我个人喜欢gb_trees,它非常快速且易于使用。

答案 1 :(得分:-1)

查看gproc

它应该做你想要的,非常有效,并且由Erlang的创造者之一制作,足够强大。

您可以查看一些gproc功能here,然后您就会知道它是否适合您的问题

编辑1: 进一步搜索后,可以使用gproc:set_value(Key, Value).

更新gproc条目的值

编辑2: 所以你将使用:

gproc:reg({n, l, YouKey}, YourValue)   %% YouValue will be the tuple
gproc:set_value(YourKey, YourValue)
gproc:unreg({n, l, YourKey})