README.rdoc

= 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

==Setup

 $ git clone git://github.com/hiroeorz/eredis_pool.git
 $ cd eredis_pool
 $ make get-deps
 $ make

==Testing
 $ make test

==Settings
edit src/eredis_pool.app.src

 {application, eredis_pool,
  [
   {description, ""},
   {vsn, "1"},
   {registered, []},
   {applications, [
                   kernel,
                   stdlib
                  ]},
   {mod, { eredis_pool_app, []}},
   {env, [
           {global_or_local, local},
           {pools, [
                    {default, [
                               {size, 10},
                               {max_overflow, 20}
                              ], [] }
                   ]}
         ]}
  ]}.

add new pools.
  {env, [
          {global_or_local, local},
          {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