redis单机和集群的切换

本文介绍如何在Redis单机与集群之间进行切换,避免编写两套代码。通过策略模式,创建一个`jedisclient`接口,分别由`JedisCluster`和`JedisPool`实现,分别对应集群和单机操作。通过配置文件动态加载实现单机或集群模式,并通过注释配置轻松切换。
部署运行你感兴趣的模型镜像

       在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">
      <property name="jedisPool" ref="jedisPool"></property>
     
   </bean>
   <bean id="jedisPool" class="redis.clients.jedis.JedisPool">
      <constructor-arg name="host" value="192.168.56.101" />
      <constructor-arg name="port" value="6379" />
   </bean>
   
   
   
  	<!-- 连接redis集群 -->
	<bean id="jedisClientCluster" class="cn.e3mall.common.jedis.JedisClientCluster">
		<property name="jedisCluster" ref="jedisCluster"/>
	</bean>
	<bean id="jedisCluster" class="redis.clients.jedis.JedisCluster">
		<constructor-arg name="nodes">
			<set>
				<bean class="redis.clients.jedis.HostAndPort">
					<constructor-arg name="host" value="192.168.25.162"></constructor-arg>
					<constructor-arg name="port" value="7001"></constructor-arg>
				</bean> 
				<bean class="redis.clients.jedis.HostAndPort">
					<constructor-arg name="host" value="192.168.25.162"></constructor-arg>
					<constructor-arg name="port" value="7002"></constructor-arg>
				</bean> 
				<bean class="redis.clients.jedis.HostAndPort">
					<constructor-arg name="host" value="192.168.25.162"></constructor-arg>
					<constructor-arg name="port" value="7003"></constructor-arg>
				</bean> 
				<bean class="redis.clients.jedis.HostAndPort">
					<constructor-arg name="host" value="192.168.25.162"></constructor-arg>
					<constructor-arg name="port" value="7004"></constructor-arg>
				</bean> 
				<bean class="redis.clients.jedis.HostAndPort">
					<constructor-arg name="host" value="192.168.25.162"></constructor-arg>
					<constructor-arg name="port" value="7005"></constructor-arg>
				</bean> 
				<bean class="redis.clients.jedis.HostAndPort">
					<constructor-arg name="host" value="192.168.25.162"></constructor-arg>
					<constructor-arg name="port" value="7006"></constructor-arg>
				</bean> 
			</set>
		</constructor-arg>
	</bean>

   加载配置文件后,直接操作接口就可以了,然后对集群的配置注释,可以切换到单机。对单机的配置注释,就可以切换到集群。

您可能感兴趣的与本文相关的镜像

Dify

Dify

AI应用
Agent编排

Dify 是一款开源的大语言模型(LLM)应用开发平台,它结合了 后端即服务(Backend as a Service) 和LLMOps 的理念,让开发者能快速、高效地构建和部署生产级的生成式AI应用。 它提供了包含模型兼容支持、Prompt 编排界面、RAG 引擎、Agent 框架、工作流编排等核心技术栈,并且提供了易用的界面和API,让技术和非技术人员都能参与到AI应用的开发过程中

评论 36
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值