在redis单机中用的是JedisCluster。在redis集群中用的是JedisPool。一般来说在开发环境中用单机就可以,而生产的时候就要切换到集群中了。
那么要需要两套代码吗?当然不是我们可以使用策略模式。
创建一个jedisclient接口
public interface JedisClient {
String set(String key, String value);
String get(String key);
Boolean exists(String key);
Long expire(String key, int seconds);
Long ttl(String key);
Long incr(String key);
Long hset(String key, String field, String value);
String hget(String key, String field);
Long hdel(String key, String... field);
Boolean hexists(String key, String field);
List<String> hvals(String key);
Long del(String key);
}
里面包含redis中的基本操作,然后创建一个JedisCluster类实现接口,其中的属性是jediscluster。集群工具类。然后创建一个JedisClientPool类实现接口,其中的属性是JedisPool。单机工具类。
配置文件中
<!-- 连接redis单机版 -->
<bean id="jedisClientPool" class="cn.e3mall.common.jedis.JedisClientPool">
<