Redis客户端——Jedis使用

本文介绍如何使用Jedis客户端结合Spring框架配置Redis连接池,并实现读写分离的示例。通过部署Redis服务、添加Jedis客户端及配置Spring,实现对Redis集群服务的有效访问。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文介绍Redis官方推荐的Java客户端Jedis,结合Spring配置Redis连接池,访问Redis集群服务。


一、部署Redis服务

Redis集群服务的配置,请参加之前的文章《Redis主从配置》


二、在项目中添加Jedis客户端

1、Jedis-2.4.2

Jedis其它版本请访问https://github.com/xetorthio/jedis

Redis其它客户端请访问http://redis.io/clients

2、Apache Common Pool2

Jedis-2.4.2依赖commons-pool2

项目中若使用Maven管理,添加以下依赖:

<dependency>
  <groupId>org.apache.commons</groupId>
  <artifactId>commons-pool2</artifactId>
  <version>2.0</version>
  <type>jar</type>
  <scope>compile</scope>
</dependency>
<dependency>
  <groupId>redis.clients</groupId>
  <artifactId>jedis</artifactId>
  <version>2.4.2</version>
  <type>jar</type>
  <scope>compile</scope>
</dependency>


三、Spring配置

<!-- redis连接池配置项 -->
<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">  
	<property name="maxTotal" value="1024" />  
        <property name="maxIdle" value="200" />  
        <property name="maxWaitMillis" value="1000" />  
        <property name="testOnBorrow" value="true" />  
</bean>

<!-- redis pool for write -->
<bean id="shardedJedisPool" class="redis.clients.jedis.ShardedJedisPool">
   <constructor-arg index="0″ ref="jedisPoolConfig" />  
   <constructor-arg index="1″ ref="192.168.242.128" />
   <constructor-arg index="2″ ref="6379" />
   <!-- timeout -->
   <constructor-arg index="3″ ref="1000" />
</bean>

<!-- redis pool for read -->
<bean id="shardedJedisPool" class="redis.clients.jedis.ShardedJedisPool">
   <constructor-arg index="0″ ref="jedisPoolConfig" />
   <constructor-arg index="1″>
	<list>  
	   <!-- redis master -->
           <bean class="redis.clients.jedis.JedisShardInfo">
               <constructor-arg index="0″ value="192.168.242.128" />
               <constructor-arg index="1″ value="6379" type="int" />
           </bean>  
	   <!-- redis slaver -->  
           <bean class="redis.clients.jedis.JedisShardInfo">
               <constructor-arg index="0″ value="192.168.242.129" />
               <constructor-arg index="1″ value="6379" type="int" />
           </bean> 
	</list>  
   </constructor-arg>  
</bean>

四、测试代码

@Controller
@RequestMapping("/test.do")
public class TestController{

	@Autowired
	private JedisPool jedisPool;//写操作连接池

	@Autowired
	private ShardedJedisPool shardedJedisPool;//读操作连接池

	@Requestmapping(params="method=test", method=RequestMethod.GET)
	public String test(String value, ModelMap model){
		Jedis jedisWriter = jedisPool.getResouce();
		ShardedJedis jedisReader = shardedJedisPool;.getResouce();

		String key = "info";
		jedisWriter.set(key, value);//向redis服务器写入值

		String info = jedisReader.get(key);//从redis集群服务读取值

		jedisPool.returnResource(jedisWriter);//释放资源
		shardedJedisPool.returnResource(jedisReader);

		model.addAttribute("info", info);
		return "/notice";
	}

}
浏览器中输入http://localhost/test.do?method=test&value=123456789,将把“123456789”存入Redis,并从Redis中读出info值显示到页面。页面显示“123456789”,表示测试成功。


相关链接:

Jedis连接池配置

Jedis与ShardedJedis 设计

征服 Redis + Jedis

jedis使用


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值