在spring中基于利用动态代理整合单机,集群与哨兵的redis客户端(基于jedis)
简述
此篇文章为基于jedis利用动态代理整合单机,集群和哨兵模式的redis客户端,通过在application.properties内设置redis.client.mode可以启用不同的客户端。
动态代理
通过配置文件生成不同模式的客户端
@Configuration
public class JedisConfig {
@Value("${redis.client.mode}")
private String clientMode;
@Value("${redis.host}")
private String hosts;
@Value("${password}")
private String password;
@Value("${timeout}")
private String timeout;
private JedisPool jedisPool;
private JedisCluster jedisCluster;
private JedisSentinelPool jedisSentinelPool;
@PostConstruct
public void create() {
List<HostAndPort> hnps = new ArrayList<>();
for (String host : hosts.split(",")) {
String[] hostAndPort = host.split(":");
HostAndPort hnp = new HostAndPort(hostAndP