eredis_pool is Pool of Redis clients, using eredis and poolboy.
eredis: github.com/wooga/eredis
poolboy: github.com/devinus/poolboy
$ git clone git://github.com/hiroeorz/eredis_pool.git $ cd eredis_pool $ make get-deps $ make
$ make test
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} ]} ]} ]}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. redis.io/commands