本节目标
通过JedisPool获取Jedis示例,并完成对redis 简单的Key-value读写操作。
完整代码结构如下:
redis服务端
在本地运行redis-server.exe,然后在resources新建jedis.properties:
redis.host=localhost redis.port=6379
配置jedis
我们将jedis相关配置放在单独的Spring Config中,在resources/spring目录新建applicationContext-jedis.xml。
<!-- 加载配置属性文件 --> <context:property-placeholder ignore-unresolvable="true" location="classpath*:jedis.properties"/> <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig"> <property name="maxIdle" value="300"/> <!-- 最大能够保持idel状态的对象数 --> <property name="maxTotal" value="60000"/> <!-- 最大分配的对象数 --> <property name="testOnBorrow" value="true"/> <!-- 当调用borrow Object方法时,是否进行有效性检查 --> </bean> <bean id="jedisPool" class="redis.clients.jedis.JedisPool"> <constructor-arg index="0" ref="jedisPoolConfig"/> <constructor-arg index="1" value="${redis.host}" type="java.lang.String"/> <constructor-arg index="2" value="${redis.port}" type="int"/> </bean>
测试
添加单元测试,通过@Resource注解获取JedisPool实例对象。
@Resource private JedisPool jedisPool;
然后调用jedisPool对象的getResource()方法就可以获取到Jedis实例了。
Jedis jedis = jedisPool.getResource();
先测试个最基本的get,set操作
@Test public void TestRedis() { Jedis jedis = jedisPool.getResource(); String key = "a"; jedis.set(key, "111"); String data = jedis.get(key); System.out.println(data); }
运行结果:111
再测试个列表操作:
@Test public void testList(){ Jedis jedis=jedisPool.getResource(); String key="articles"; jedis.lpush(key,"文章1"); jedis.lpush(key,"文章2"); jedis.lpush(key,"文章3"); List<String> articles=jedis.lrange(key,0,3); for(String article:articles){ System.out.println(article); } }
运行结果:
文章3
文章2
文章1
再来个集合操作:
@Test public void testSet(){ Jedis jedis=jedisPool.getResource(); String key="tags"; jedis.sadd(key,"宝马"); jedis.sadd(key,"豪车"); jedis.sadd(key,"SUV"); jedis.sadd(key,"SUV"); Set<String> tags=jedis.smembers(key); for(String tag:tags){ System.out.println(tag); } }
运行结果:
宝马
豪车
SUV
先到这里吧,SO EASY!!
源码地址:https://github.com/cathychen00/learnjava/tree/master/DemoRedis