github 地址:
目录结构:
- include/
- eredis_sub.hrl
- eredis.hrl
- src/
- eredis.app.src
- eredis.erl
- eredis_client.erl
- eredis_parser.erl
- eredis_sub.erl
- eredis_sub_client.erl
- basho_bench_driver_eredis.erl
- basho_bench_driver_erldis.erl
常用函数:
启动客户端:
{ok, ClientPid} = eredis:start().
设置KV:
单个设置:
{ok, <<"OK">>} = eredis:q(ClientPid, ["SET", Key, Value]).
多个设置:
KeyValuePairs = ["key1", "value1", "key2", "value2", "key3", "value3"],
{ok, <<"OK">>} = eredis:q(ClientPid, ["MSET" | KeyValuePairs]).
查询KV:
单个查询:
{ok, BinValue} = eredis:q(ClientPid, ["GET", Key]).
多个查询:
KeyValuePairs = ["key1", "key2", "key3"],
{ok, Values} = eredis:q(ClientPid, ["MGET" | KeyValuePairs]).
hash 操作:
HashObj = ["id", "objectId", "message", "message", "receiver", "receiver", "status", "read"].
eredis:q(C, ["HMSET", "key" | HashObj]).
{ok, Values} = eredis:q(C, ["HGETALL", "key"]).
list 操作:
eredis:q(C, ["LPUSH", "keylist", "value"]).
eredis:q(C, ["RPUSH", "keylist", "value"]).
eredis:q(C, ["LRANGE", "keylist",0,-1]).
transaction 操作:
{ok, <<"OK">>} = eredis:q(C, ["MULTI"]).
{ok, <<"QUEUED">>} = eredis:q(C, ["SET", "foo", "bar"]).
{ok, <<"QUEUED">>} = eredis:q(C, ["SET", "bar", "baz"]).
{ok, [<<"OK">>, <<"OK">>]} = eredis:q(C, ["EXEC"]).
pipeline 操作:
P1 = [["SET", a, "1"],["LPUSH", b, "3"],["LPUSH", b, "2"]].
[{ok, <<"OK">>}, {ok, <<"1">>}, {ok, <<"2">>}] = eredis:qp(C, P1).
类型定义:
-type client() :: pid() |
atom() |
{atom(),atom()} |
{global,term()} |
{via,atom(),term()}.
eredis.erl 模块:
- start_link/0,1,2,3,4,5,6 函数:
start_link() -> {ok, Pid::pid()} | {error, Reason::term()}.
start_link(Host, Port) ->
start_link(Host, Port, Database) ->
start_link(Host, Port, Database, Password) ->
start_link(Host, Port, Database, Password, ReconnectSleep) ->
start_link(Host, Port, Database, Password, ReconnectSleep, ConnectTimeout) ->
作用:启动 eredis_client 进程
默认配置:
- Host:”127.0.0.1”
- Port:6379
- Database:0
- Password:””
- ReconnectSleep:100
- ConnectTimeout:5000
- stop/1 函数:
stop( Client::client() )
作用:关闭 eredis_client ‘
- q/2,3 函数:
q( Client::client(), Command::list() ) -> {ok, return_value()} | {error, Reason::binary() | no_connection}.
q( Client::client(), Command::list(), Timeout ) ->
作用:同步执行 redis 命令’
- qp/2,3 函数:
qp( Client::client(), Pipeline::list() ) -> {ok, return_value()} | {error, Reason::binary() | no_connection}.
qp( Client::client(), Pipeline::list(), Timeout ) ->
作用:同步执行多条 redis 命令;
- q_noreply/2 函数:
q_noreply( Client::client(), Command::list() ) -> ok.
作用:异步执行 redis 命令,不等待响应且忽略错误;
本文介绍了Erlang中用于操作Redis的eredis模块,包括其github源码地址、目录结构和常用函数。重点讲解了启动客户端、设置和查询KV、hash、list、transaction以及pipeline操作。此外,还提到了eredis.erl模块的主要函数,如start_link/6、stop/1、q系列和qp系列函数等。

753

被折叠的 条评论
为什么被折叠?



