- 浏览: 37571 次
- 来自: 深圳
文章分类
最新评论
-
ZacMa:
哈哈,突然感觉里面没怎么介绍,全是贴代码了
<8>redis及erl-redis阅读 -
惊涛翻案:
马博士,给我开课吧
<8>redis及erl-redis阅读
做为后端开发者,经常用到数据存储, 工作中用到过各种模式的数据存储,但很少总结下经常用到的方法,虽然很多或自己想法或从网络上来没有实践过,但记录下来简单分析下,做为备份,以便以后工作用验证, 简单分析涉及erlang做服务器最常用数据存储的方式:
1.
ets + mysql
这估计是很多采用的方法,这种方法最常用的原因是mysql大家用的已经相当普遍了,适合存储各种大量的数据, 并且mysql适合和其他语言的交互,例如php,c, c++都很方便的访问,单mysql是完全够了;这样mysql可用作永久数据存储,ets因为速度快,对erlang支持好,用来做缓存;
2.
dets + ets
这种存储也很普遍,dets用于永久的数据存储,把数据存放在磁盘中; ets做缓存,临时存放用户经常快速访问的数据,不需要永久存储的数据, 这个存储有个缺点就是ets表的存储不能跨节点使用,必须通过间接地数据传输,对于大部分应用这种存储应该还是完全可以胜任的;
3.
redis
redis做缓存不用多说,大众推荐的,并且redis支持各种类型的数据存储相当方便,各种模式的数据存储,速度也是相当快,做缓存绝对是不二的选择; 做持久存储的不足就是redis可储存的空间只能小于本服的内存,也就是redis中的数据会在缓存中全部保存一份,所以要在存储前设计好存储空间,不适合做大量数据的存储, 不过貌似redis有不少用作永久存储的,世界第二大porn网站用redis就是最好的例子,
http://www.kuqin.com/shuoit/20130806/334696.html
4
mnesia + ets
这种存储方式貌似见的不多,可能主要的原因是mnesia懂的人不是很多,把核心数据放在mnesia中不放心,并且mnesia和其他的交互性不好,php,c等没办法直接去访问数据
5
ets+文件
文件存储的弊端是需要自己设计好存储的格式,否则会读取,查询等操作比较麻烦,erlnag中有比较完备的格式,例如ets文件存储方式,用文件也是不错的选择;
http://blog.yufeng.info/archives/2842#respond
erlang中用文件写的效率并不比其他语言差;
这里ets做为cache,更方便的方式是直接用ets带的 tab2file和file2tab来文件和ets相互转化,直接从cache到磁盘,从磁盘到cache,不用自己设计文件的格式
6.
待续
1.
ets + mysql
这估计是很多采用的方法,这种方法最常用的原因是mysql大家用的已经相当普遍了,适合存储各种大量的数据, 并且mysql适合和其他语言的交互,例如php,c, c++都很方便的访问,单mysql是完全够了;这样mysql可用作永久数据存储,ets因为速度快,对erlang支持好,用来做缓存;
2.
dets + ets
这种存储也很普遍,dets用于永久的数据存储,把数据存放在磁盘中; ets做缓存,临时存放用户经常快速访问的数据,不需要永久存储的数据, 这个存储有个缺点就是ets表的存储不能跨节点使用,必须通过间接地数据传输,对于大部分应用这种存储应该还是完全可以胜任的;
3.
redis
redis做缓存不用多说,大众推荐的,并且redis支持各种类型的数据存储相当方便,各种模式的数据存储,速度也是相当快,做缓存绝对是不二的选择; 做持久存储的不足就是redis可储存的空间只能小于本服的内存,也就是redis中的数据会在缓存中全部保存一份,所以要在存储前设计好存储空间,不适合做大量数据的存储, 不过貌似redis有不少用作永久存储的,世界第二大porn网站用redis就是最好的例子,
http://www.kuqin.com/shuoit/20130806/334696.html
4
mnesia + ets
这种存储方式貌似见的不多,可能主要的原因是mnesia懂的人不是很多,把核心数据放在mnesia中不放心,并且mnesia和其他的交互性不好,php,c等没办法直接去访问数据
5
ets+文件
文件存储的弊端是需要自己设计好存储的格式,否则会读取,查询等操作比较麻烦,erlnag中有比较完备的格式,例如ets文件存储方式,用文件也是不错的选择;
http://blog.yufeng.info/archives/2842#respond
erlang中用文件写的效率并不比其他语言差;
这里ets做为cache,更方便的方式是直接用ets带的 tab2file和file2tab来文件和ets相互转化,直接从cache到磁盘,从磁盘到cache,不用自己设计文件的格式
6.
待续
发表评论
-
mysql和redis存查取简单对比<37>
2015-06-30 19:48 1518简单总结下对redis和mysql的认识: redis: ... -
erlang版本安装相关问题 <32>
2014-05-10 15:54 581<1> erlang R1603安装后,crytp ... -
关于iolist<30>
2014-01-15 10:42 586iolist是比较常用的数据结构. iolist的 ... -
erlang 字符编码 <29>
2014-01-14 16:31 1228用mochiweb通过网页发送中文到服务器,结果服务器显示乱码 ... -
<27>erlang record
2013-11-19 11:19 738平时总是忘记record的某些使用方法,每次使用都要翻文档, ... -
<26>io:format io_lib:format
2013-11-14 11:07 1277使用io_lib时候要注意参数,尤其是封装json串的时候,否 ... -
<24>用error_logger间隔记录日志
2013-10-22 16:09 628执行下面的代码 test:start(). test.erl ... -
<22> erlang中的数学计算函数相关
2013-10-10 10:34 15961. 幂函数 match:pow(m,n) 表示m的n次幂 ... -
<20>erlang中的类型和函数说明
2013-09-15 11:25 936erlang是一种动态类型的语言(运行时才决定数据类型),可以 ... -
<19>erlang中的时间,日期
2013-09-06 11:21 1163时间函数涉及的数据类型: DATA TYPES datetim ... -
<18>Efficient guide 之List handling
2013-08-31 18:45 6421 Deep and flat lists lists:fl ... -
<17>Efficiency Guide之Function
2013-08-27 22:30 5491. 函数模式匹配 模式匹配,在函数头,case和receiv ... -
<16>Efficiency Guide之Common Caveats
2013-08-11 11:07 767(1) ++ 如果做一个list的反转,不要这样, naiv ... -
<15> lists模块补充
2013-08-05 20:12 799%% 对list模块经常用到的进行补充 %% 1 对所有元素进 ... -
<15> lists模块解析和补充
2013-07-24 17:57 12%% 对list模块经常用到的进行补充 %% 1 对所有元素 ... -
<12>简述erlang的几种错误
2013-04-14 23:31 11541) badarg Bad argument. The ar ... -
<11>erlang中方便使用的模块和命令(2)
2013-04-06 22:33 757(1) 进程字典到底用不用,很多人推荐使用 http:// ... -
<9>rabbitmq网络层
2013-01-31 00:20 726抽离出了网络层, 逻辑层待以后研究 https://gith ... -
<8>redis及erl-redis阅读
2013-01-16 10:14 8191 redis的功能相当的强大,里面的发布订阅pub/su ... -
<7>pg2 分析
2012-12-08 13:42 1227网上看到erlang的pg2模块似乎没人推荐使用,但是还是有不 ...
相关推荐
个人学习Erlang对于Erlang处理数据的各种方式的总结,讲述编程语言Erlang的ets,dets,mnesia,mysql,dict,和进程字典的用法,希望能帮助读者在这个总结里学到一些东西.
Riak是以 Erlang 编写的一个高度可扩展的分布式数据存储,Riak的实现是基于Amazon的Dynamo论文,Riak的设计目标之一就是高可用。Riak支持多节点构建的系统,每次读写请求不需要集群内所有节点参与也能胜任。、
smart eredis 是基于ketama算法和eredis项目的redis erlang驱动,主要以一致性hash的方式存储数据,做到key的分布式存储
CouchDB用作数据存储。 描述api。 跑步 上面的下载是一个标准的erlang版本,其中包含一个启动脚本。 要在前台启动glot-snippets,请输入: glot/bin/glot foreground 。 环境变量 glot-snippets从环境变量获取其...
RabbitMQ和邮局的主要区别在于它不处理纸张,而是接受,存储和转发二进制数据块 - 消息。 引自(https://www.rabbitmq.com/tutorials/tutorial-one-java.html)官网介绍。 首先,您需要安装支持的 Windows 版Erlang...
#cbt 基于Apache CouchDB btree的多层MVCC仅日志附加数据库库。与couchdb相比的变化可插拔存储... $ cd /<PATH>/cbt$ make注意:要使用snappy或lz4压缩方法,您需要安装以下依赖项: snappy : : lz4 : : 并启动您安
Evedis是Vedis的Erlang绑定, 是用于将数据存储在内存或磁盘中的嵌入式C库。 它的API在概念上与类似,但是没有网络层,因为Vedis在主机应用程序的同一进程中运行。 Evedis使用Erlang本机实现功能(NIF)来包装Vedis...
Erlang:函数式编程的力量 Erlang中的函数式编程,包括流,惰性求值和依赖类型。 在和的演示。 EFBA.pdf和CBSF.pdf中的幻灯片。 关于不同方法的注意事项 lazy.erl惰性示例的权威版本,其中引用存储在命名的ETS表中...
一种的Erlang版本,目标是达到相似的算法性能,但支持多个主节点和大于RAM的数据集。 有关,请参见此Erlang Factory 2012上的演讲PDF。 联系我们 有关使用此库的问题或一般性意见,请使用我们的公共。 如果在使用此...
将密钥/元数据存储在合并树中,将完整对象存储在的日志中 允许开销比GET请求低的HEAD请求; 和 查询遍历要支持的键/元数据的页面缓存比折叠键/对象少的副作用。 支持对象类型的标记以及基于类型的替代存储行为的...
lager_logstash_backend 后端将更大的数据存储到日志存储中Logstash 安装logstash并使用有关logstash服务器的信息设置sample.config。 示例logstash配置: input { stdin { type => "stdin-type" } file { type => ...
以下存储库是用于下一代数据传输协议 (ETP) 的 Energistics 规范的早期测试平台。 它是作为测试早期规范的一部分而开发的,重点是利用普通 Java、#C 或 JavaScript 之外的其他技术。 此外,erlang 凭借其稳定性和...
分层数据存储和检索服务器 警告 这是早期的 alpha 软件,下面的说明肯定会发生巨大变化,在我们删除此警告之前,请假设该软件尚未准备好生产。 概述 Plywood 数据库服务器提供了一个简单的 Web 界面来存储树结构的 ...
程序结构的基础通过递归,字符串,列表和更高级的Delixir处理的核心-order函数创建进程,在它们之间发送消息,并将模式匹配应用于传入消息使用Erlang Term Storage(ETS)和Mnesia数据库存储和操作结构化数据使用...
一个工具,它从外部参照中提取静态依赖和调用数据,从 Erlang 应用程序中提取运行时调用数据(todo),并在 neo4j 数据库中存储为一组节点和边。 允许 (todo) 显示各种代码统计信息、调用树、调用路径、跟踪树等。 ...
项目该存储库包含Erlang中的数据格式的实现。 低级解析基于 。文献资料手册可。接触如果您发现错误或有任何疑问,请随时打开GitHub问题或与我联系。 请注意,我目前不审查或接受任何贡献。
由于模块中的数据实际上是只读数据,并且是全局存储的,因此可以提供极其快速和一致的数据访问,而在原始创建之后很少或从未修改过。用法1> DB0 = wandb_build:new(testdb).2> DB1 = wandb_build:insert(DB0,get,[{...
eleveldb与LevelDB数据存储区的Erlang绑定 此存储库遵循截至2013年11月28日的Basho分支机构管理标准。可以在以下位置找到该标准: 总之,“开发”分支包含最新审查的工程工作。 “ master”分支包含最新发布的作品,...