Cache Cluster Config¶
This page gives you introductions on how to create a CacheCluster
instance.
Basic Config¶
Simple demo:
from rc import CacheCluster
cache = CacheCluster({
0: {'host': 'redis-host-01'},
1: {'host': 'redis-host-02', 'port': 6479},
2: {'unix_socket_path': '/tmp/redis.sock'},
3: {'host': 'redis-host-03', 'db': 1},
})
Basically hosts is just one dictionary that maps host name to parameters
which are taken by HostConfig
, excluding
host_name.
Just like Cache, you can specify your own customized serializer_cls,
you can change default expiration time to any length you want, you can set
a namespace for this cache instance, for more details, check out
CacheCluster
.
Redis Connection Pool Config¶
By default we use ConnectionPool
, specify your own connection
pool class and options using parameters called pool_cls
and
pool_options
.
Redis Router Config¶
By default we use RedisCRC32HashRouter
, specify your own router
class and options using parameters called router_cls
and
router_options
. For more routers, check out Redis Cluster Router.
Concurrency Config¶
For operations on multiple keys like get_many, set_many and delete_many,
we execute them in parallel. Under the hood, we does the parallel query using
a select loop(select/poll/kqueue/epoll). Mostly, if we are using several
remote redis servers, we achieve higher performance. You can specify
max_concurrency
and poller_timeout
to control maximum concurrency and
timeout for poller.