本文介绍Redis官方推荐的Java客户端Jedis,结合Spring配置Redis连接池,访问Redis集群服务。
一、部署Redis服务
Redis集群服务的配置,请参加之前的文章《Redis主从配置》。
二、在项目中添加Jedis客户端
Jedis其它版本请访问https://github.com/xetorthio/jedis
Redis其它客户端请访问http://redis.io/clients
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”,表示测试成功。
相关链接: