package io.craft.atom.redis; import io.craft.atom.redis.api.MasterSlaveRedis; import io.craft.atom.redis.api.MasterSlaveShardedRedis; import io.craft.atom.redis.spi.Sharded; import java.util.List; import lombok.ToString; /** * @author mindwind * @version 1.0, Jun 26, 2013 */ @ToString(callSuper = true) public class DefaultMasterSlaveShardedRedis extends AbstractShardedRedis<MasterSlaveRedis> implements MasterSlaveShardedRedis { public DefaultMasterSlaveShardedRedis(List<MasterSlaveRedis> shards) { this.sharded = new MasterSlaveRedisMurmurHashSharded(shards); } public DefaultMasterSlaveShardedRedis(Sharded<MasterSlaveRedis> sharded) { this.sharded = sharded; } // ~ --------------------------------------------------------------------------------------------------------- @Override public List<MasterSlaveRedis> shards() { return sharded.shards(); } @Override public MasterSlaveRedis shard(String shardkey) { return sharded.shard(shardkey); } @Override public void enableReadSlave() { for (MasterSlaveRedis msr : shards()) { msr.enableReadSlave(); } } @Override public void disableReadSlave() { for (MasterSlaveRedis msr : shards()) { msr.disableReadSlave(); } } }