但 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运算后分片存储。取出的时候,按照同样的算法从对应片中取出值。