Redis的java客户端(jedis)配置(spring)与使用

时间:2022-01-06 15:57:06
参考 Redis的客户端 页面,redis的java客户端实现官方推荐的是jedis。所以不管三七二十一就用这个了。

jedis 确实是没半点文档(至少我没找到)。幸好下载源码之后看到单元测试的例子还是蛮完善的。翻看之后基本上使用只要掌握Jedis,JedisPool,JedisPoolConfig,JedisSharedInfo,ShardedJedisPool,ShardedJedis这几个类基本上能满足基本的使用了。

首先,在项目中引入jeids的jar包。 

<!-- java readis客户端 --> 
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.0.0</version>
</dependency>

其次,在spring配置文件中添加配置(也可以直接new出这些对象,一样的) 

<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig"> 
<property name="maxActive" value="50" />
<property name="maxIdle" value="10" />
<property name="maxWait" value="1000" />
<property name="testOnBorrow" value="true"/>
</bean>

<bean id="jedisShardInfo" class="redis.clients.jedis.JedisShardInfo">
<constructor-arg index="0" value="reids服务器ip" />
<constructor-arg index="1" value="redis服务器port" type="int"/>
</bean>

<bean id="shardedJedisPool" class="redis.clients.jedis.ShardedJedisPool">
<constructor-arg index="0" ref="jedisPoolConfig" />
<constructor-arg index="1">
<list>
<ref bean="jedisShardInfo" />
</list>
</constructor-arg>
</bean>

最后,调用的时候 :

...... 

ShardedJedis jedis = shardedJedisPool.getResource();
jedis.get(key); //从redis服务器获取值
jedis.set(key, value); //将值保存到redis服务器

......

客户端会自动将要存储的值按照key值进行hash运算后分片存储。取出的时候,按照同样的算法从对应片中取出值。