eredis_pool

eredis_pool is Pool of Redis clients, using eredis and poolboy.

eredis: https://github.com/wooga/eredis

poolboy: https://github.com/devinus/poolboy

Add new pools

  {env, [
          {pools, [
                   {default, [
                              {size, 10},
                              {max_overflow, 20}
                             ], []},
                   {pool1, [
                              {size, 30},
                              {max_overflow, 20}
                             ], [
                              {host, "127.0.0.1"},
                              {port, 6379}
                             ]},
                   {pool2, [
                              {size, 20},
                              {max_overflow, 20}
                           ], [
                              {host, "127.0.0.1"},
                              {port, 6379},
                              {database, "user_db"},
                              {password, "abc"},
                              {reconnect_sleep, 100}
                             ]}
                  ]}
        ]}

Examples

application start.
 eredis_pool:start().
 ok

key-value set and get

 eredis_pool:q({global, dbsrv}, ["SET", "foo", "bar"]).
 {ok,<<"OK">>}

 eredis_pool:q({global, dbsrv}, ["GET", "foo"]).
 {ok,<<"bar">>}

Redis Pipeline

 Pipeline = [["SET", a, "1"],
      ["LPUSH", b, "3"],
      ["LPUSH", b, "2"]].
 eredis_pool:qp({global,dbsrv}, Pipeline).

create new pool with default settings.

 eredis_pool:create_pool(pool1, 10).
 {ok,<0.64.0>}

and omissible argments(host, port, database, password reconnect_sleep).

 eredis_pool:create_pool(pool1, 10, "127.0.0.1", 6379, 1, "abc", 100).
 {ok,<0.64.0>}

using new pool

 eredis_pool:q(pool1, ["GET", "foo"]).
 {ok,<<"bar">>}

delete pool

 eredis_pool:delete_pool(pool1).
 ok

Other commands is here. http://redis.io/commands