`
acme_ltt
  • 浏览: 53934 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Riak 使用1 (gen_server封装)

阅读更多

Riak的介绍,网上一艘一大堆,但怎么用?看看github上Riak的readme,看得懂,实际写,茫然。

 

github是个好东西,在github上搜riakc_pb_socket:start_link (这半行代码的意思,就不需要说了吧),选择语言Erlang,并search for code,看那个顺眼,点开看看。呵,找到一个https://github.com/matteoredaelli/ebot/blob/master/src/ebot_db_util.erl ,去看看在哪里用了Riak,

 

	
open_or_create_db() ->
    {ok, Hostname} = ebot_util:get_env(db_hostname),
    {ok, Port} = ebot_util:get_env(db_port),
    case ?EBOT_DB_BACKEND of
ebot_db_backend_couchdb ->
application:start(ibrowse),
application:start(couchbeam),
Prefix = "",
Options = [],
Conn = couchbeam:server_connection(Hostname, Port, Prefix, Options),
case couchbeam:server_info(Conn) of
{ok, _Version} ->
couchbeam:open_or_create_db(Conn, "ebot", []);
Else ->
error_logger:error_report({?MODULE, ?LINE, {init, cannot_connect_to_db, ?EBOT_DB_BACKEND, Else}}),
Else
end;
ebot_db_backend_riak_pb ->
riakc_pb_socket:start_link(Hostname, Port);
_Else ->
error_logger:error_report({?MODULE, ?LINE, {init, unsupported_backend, ?EBOT_DB_BACKEND}}),
{error, unsupported_backend}
    end.

 

细看之下,发现这丫的用gen_server封装了Riak的各种操作,比较爽,拿来用用:

 

 

1、确定封装方案

    gen_server state记录字段,pid :Riak连接之后,会生成一个Pid,后续的各种操作将会使用这个参数,因此需要保存在State record中。

2、init

    初始化,需要做的事情,A,连接Riak,B,将Pid保存在State中

3、各种操作

    这个时候看Riak用户手册就行了。

分享到:
评论

相关推荐

    Riak是以_Erlang_编写的一个高度可扩展的分布式数据存储,Riak的实现是基于Amazon的_mumu-riak.zip

    Riak是以_Erlang_编写的一个高度可扩展的分布式数据存储,Riak的实现是基于Amazon的_mumu-riak

    riak_test_core:riak_test fork 将 riak_test 重构为不直接针对 riak_kv 并使其更像库

    Riak 测试核心 这是 basho 的 Riak Test 的一个分支,将其从应用程序重构为库,并从文件中删除 riak_kv 的直接依赖项/目标,使其更通用。 也就是说,原始代码几乎没有更改,请参阅下面的原始自述文件。 Riak测试 ...

    riak_core_tutorial

    riak_core_tutorial目录 3.4. 5.7.8.10.1112.环境要跳过设置环境,已经为本教程准备了一个环境: riak_core_env 。 在接下来的章节中,我假设您已运行环境并在链接中提到的RIAK_CORE_ENV/synced/目录中完成所有工作...

    riak_ensemble_demo:设置riak_ensemble的小代码示例

    里亚克乐团实验通过riak_ensemble_demo.app.src配置: data_root:集成状态保存到的文件的路径(将附加节点名) 节点:将尝试自动加入的节点列表仅当大多数已配置节点在线并且正在运行该应用程序时,才会形成集群。...

    server_monitoring_riak:使用Riak作为后端的服务器监视

    使用Riak作为后端的服务器监视 该项目是我的学士学位工作的一部分: “ NoSQL数据库和应用程序的比较分析” 米兰比可卡大学 关联者:安德烈·毛里诺(Andrea Maurino) 联合主持人:Blerina Spahiu 讲解 先决条件 ...

    riak_pg, 带riak_core的分布式进程组.zip

    riak_pg, 带riak_core的分布式进程组 概述带riak_core的分布式进程组。用法将进程加入组( 不需要预先声明)join(term(), pid()) -> ok | {error, timeout}.如何删除?leave

    riak_perf_analysis:探索Riak性能的工具和实验

    1. **性能监控工具**:这些工具可以实时或周期性地收集Riak服务器的关键指标,如CPU使用率、内存消耗、网络吞吐量和I/O操作。通过这些数据,我们可以识别系统瓶颈,为性能调优提供依据。 2. **基准测试脚本**:基准...

    Laravel开发-laravel-riak

    在本文中,我们将深入探讨如何在 Laravel 框架中集成和使用 Riak 数据库,主要关注连接配置、缓存管理以及会话存储。Riak 是一个分布式键值存储系统,提供高可用性、可扩展性和容错性,特别适合大数据量的应用场景。...

    PyPI 官网下载 | riak_pb-2.1.0.6-py2.6.egg

    该库的使用涉及到Python的包管理(`.egg`格式)、protobuf技术以及Riak的API调用,为Python开发者提供了与Riak通信的便利途径。在实际项目中,确保正确安装和配置Riak PB库是连接和操作Riak数据库的关键步骤。

    Riak 学习文档

    1. **连接 Riak 服务器**:在 Erlang 代码中,使用 `riakc_pb_socket:start_link` 函数连接到 Riak 服务端。 2. **创建和写入对象**:使用 `riakc_obj:new` 创建一个包含 bucket、key 和 value 的对象,然后通过 `...

    riak_governor:什么是领导集体? riak_governor

    riak_governor “什么是领导者的集合?一个 riak_governor。... 当riak_governor:is_leader/1,2 ,创建 preflist,然后从这个 preflist 中提取唯一节点,并询问有关领导者的适当集成。 如何构建它 make dep

    riak_scr_jp:Riak 源代码阅读库@Tokyo

    如果你想宣布什么,或者你对操作有意见,请使用Pull Request。开放式问题-新闻介绍源码层面的基本解释(有兴趣请随时pull request) 横纲乌贼安全调整环大小分页 2i node_package, leveldb riak_core环/ vnode管理...

    riak-Erlang.rar

    1. 分布式架构:Riak的数据分布在整个集群中,每个节点都存储数据的一部分,并通过一致性哈希(Consistent Hashing)进行数据分区,实现水平扩展。 2. 冗余与复制:Riak支持多副本机制,可以设置不同的复制因子以...

    tiniest_riak_erlang_book:与Riak和Erlang互动的介绍

    在调试和内省部分,读者将学习如何使用Erlang的监控工具,如observer和ERTS(Erlang Run-Time System)提供的性能分析工具,来追踪Riak集群的运行状态。这部分内容对于定位性能瓶颈、诊断问题和优化系统至关重要。 ...

    riak_puppet_stuff:一些用于管理我的本地riak集群的木偶食谱

    尽管此存储库中的某些部分可能是通用的,但它并不是真正供一般使用的对象,尤其是收集的插件,用于从Riak生成统计信息并将其分发到收集器中,如下所述。收集插件该存储库包含一个用于收集的服务的简单Python插件,...

    riak_test:我在你的集群中,测试你的混蛋

    current riak-1.4.12 riak-2.0.2 riak-2.0.4 riak-2.0.6 在每个目录中都有一个dev文件夹,通常使用您的常规make [stage]devrel 。 那么,如何从此沙盒开始填充呢? 您将创建另一个目录,其中将包含适用于您平台的...

    rcs_cowboy:Cowboy Rest API,用于处理riak_core_security用户,组和授权,iorioui的后端

    该库假定您的项目具有riak_core和cowboy 1.x作为依赖项,我们在此处未列出它们以避免版本不匹配。 用 将依赖项添加到您的rebar.config文件中。 钢筋: { rcs_cowboy , " .* " , { git , " git://github....

    Laravel开发-laravel-riak-auth

    5. **配置和设置**:使用`laravel-riak-auth`需要在Laravel的配置文件中设置Riak的连接信息,比如主机地址、端口、集群设置等。 6. **测试和调试**:为了确保`laravel-riak-auth`的正确运行,开发者通常会编写单元...

    riak_core:Riak使用的分布式系统基础架构

    里亚克核心 Riak Core是分布式系统框架,是分发数据和扩展规模的基础。 更一般而言,可以将其视为构建分布式,可伸缩,容错应用程序的工具包。 对于Riak Core的一些介绍性阅读(这不是纯粹的代码), 有一个古老但...

    riak-zabbix:一组工具和模板,可通过Zabbix监视工具帮助监视Riak

    riak_zabbix 用于Riak的Zabbix插件 #####包含: userparameter_riak.conf ...* * * * * /usr/sbin/riak-admin status > /var/lib/riak/riak-admin_status.new && mv /var/lib/riak/riak-admin_status.

Global site tag (gtag.js) - Google Analytics