hoppang / erlbbs

study project: bbs made with erlang
Apache License 2.0
1 stars 0 forks source link

db setup #10

Closed hoppang closed 2 years ago

hoppang commented 2 years ago

어떤 DB를 쓸 것인가부터

hoppang commented 2 years ago
hoppang commented 2 years ago

공식 얼랭 드라이버를 가진 db들 (비공식 말고)

...뿐인가?

일단 riak 으로 결정

hoppang commented 2 years ago

https://github.com/basho/riak-erlang-client 프로젝트 세팅은 간단한데 사용법을 이해하기가 좀 힘들다

hoppang commented 2 years ago
    {ok, Pid} = riakc_pb_socket:start_link("10.0.0.2", 8087),
    ?LOG_NOTICE("riakc pid = ~p", [Pid]),

    % 새 항목
    NewObj = riakc_obj:new(<<"groceries">>, <<"mine">>, <<"eggs & bacon">>),
    riakc_pb_socket:put(Pid, NewObj),

    % 항목 읽기
    {ok, Result} = riakc_pb_socket:get(Pid, <<"groceries">>, <<"mine">>),
    ?LOG_NOTICE("riakc get result = ~p", [Result]),
    Val = riakc_obj:get_values(Result),
    ?LOG_NOTICE("riakc get_values = ~p", [Val]),

    % 항목 업데이트
    Obj2 = riakc_obj:update_value(NewObj, <<"참치김밥">>),
    ?LOG_NOTICE("OBJ2 = ~p", [Obj2]),
    ok = riakc_pb_socket:put(Pid, Obj2),

    % 업데이트한 항목 다시 읽기
    {ok, Result2} = riakc_pb_socket:get(Pid, <<"groceries">>, <<"mine">>),
    ?LOG_NOTICE("riakc get result 2 = ~p", [Result2]),
    Val2 = riakc_obj:get_values(Result2),
    ?LOG_NOTICE("riakc get_values 2 = ~p", [Val2]),

대충 이렇게 하면 동작은 하는데 riak과 관계없는 한글 binary 문제가 있다는 걸 알아서 이 부분에 대해 더 공부가 필요