在springmvc中配置jedis:
2016-02-24 21:10
495 查看
主要学习https://github.com/thinkgem/jeesite。一下代码均参考于此并稍作修改。
在applicationContext-jedis.xml中添加:
注解:参考的源码中的jedisPool配置只有三个参数:config,host,port。我复制后的结果总是getResource失败,因为我的redis添加了auth,所以猜测是不是没通过auth的原因。于是打开JedisPool的源码:
View Code
1.jedis
首先,需要添加jedis:<!--jedis--> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.8.0</version> </dependency>
2.applicationContext-jedis.xml
然后,springmvc完成基本配置。添加jedispool的bean即可。在spring容器中添加applicationContext-jedis.xml:在applicationContext-jedis.xml中添加:
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd"> <!-- 加载配置属性文件 --> <context:property-placeholder ignore-unresolvable="true" location="classpath:db.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 Oject方法时,是否进行有效性检查--> </bean> <bean id="jedisPool" class="redis.clients.jedis.JedisPool"> <constructor-arg index="0" ref="jedisPoolConfig"/> <constructor-arg index="1" value="${redis.host}"/> <constructor-arg index="2" value="${redis.port}" type="int"/> <constructor-arg index="3" value="${redis.timeout}" type="int"/> <constructor-arg index="4" value="${redis.auth}"/> </bean> </beans>
注解:参考的源码中的jedisPool配置只有三个参数:config,host,port。我复制后的结果总是getResource失败,因为我的redis添加了auth,所以猜测是不是没通过auth的原因。于是打开JedisPool的源码:
/** * 获取list缓存 * @param key * @return */ public static List<String> getList(String key){ key = addDatabaseName(key); List<String> value = null; Jedis jedis = null; try { jedis = getResource(); value = jedis.lrange(key, 0, -1); logger.debug("getList {}={}",key,value); } catch (Exception e) { logger.warn("getList {}失败:{}",key,e); e.printStackTrace(); } finally { jedis.close(); } return value; } /** * 获取list缓存,元素是object * @param key * @return */ public static List<Object> getObjectList(String key){ key = addDatabaseName(key); List<Object> value = null; Jedis jedis = null; try { jedis = getResource(); List<byte[]> list = jedis.lrange(getBytesKey(key), 0, -1); value = Lists.newArrayList(); for (byte[] bytes : list) { value.add(toObject(bytes)); } logger.debug("getObjectList {}={}",key,value); }catch (Exception e){ logger.warn("getObjectList {} 失败:{}",key,e); e.printStackTrace(); }finally { jedis.close(); } return value; } /** * 设置list缓存 * @param key * @param value * @param cacheSeconds * @return */ public static long setList(String key,List<String> value,int cacheSeconds){ key = addDatabaseName(key); long result = 0; Jedis jedis = null; try { jedis = getResource(); jedis.del(key); String[] arr = new String[value.size()]; value.toArray(arr); result = jedis.rpush(key,arr); if (cacheSeconds!=0){ jedis.expire(key,cacheSeconds); } logger.debug("setList {}={}",key,value); }catch (Exception e){ logger.warn("setList {} 错误:",key,e); e.printStackTrace(); }finally { jedis.close(); } return result; } /** * 设置list缓存,list的元素为object * @param key * @param value * @param cacheSeconds * @return */ public static long setObjectList(String key,List<Object> value ,int cacheSeconds){ key = addDatabaseName(key); long result = 0; Jedis jedis = null; try { jedis = getResource(); jedis.del(key); ArrayList<byte[]> list = Lists.newArrayList(); for (Object o : value) { list.add(toBytes(o)); } byte[] []arr = new byte[list.size()][]; list.toArray(arr); result = jedis.rpush(getBytesKey(key),arr); if(cacheSeconds!=0){ jedis.expire(key,cacheSeconds); } logger.debug("setObjectList {}={}",key,value); }catch (Exception e){ logger.warn("setObjectList {} 错误:{}",key,e); e.printStackTrace(); } return result; }
View Code
相关文章推荐
- 简易的java操作数据库进行增删改查
- java多线程-Semaphore信号量使用
- 191. Number of 1 Bits
- Maven简明教程(2)---eclipse集成
- Java中遍历删除List多个元素
- JAVA内存溢出解析
- 235. Lowest Common Ancestor of a Binary Search Tree
- 【6-5】HBASE的Java接口
- Java中几种数据类型的转化
- 3、使用Java api 和 jni混合方式调用OpenCV
- Leetcode旅途三
- java 文件输入输出流 文件的复制
- 13. Roman to Integer
- SSM——Spring
- Struts2之文件下载
- java 文件输入输出流 文件夹的复制
- java中抽象的(abstract)方法是否可同时是静态的(static),是否可同时是本地方法(native),是否可同时被synchronized修饰
- Struts2之文件上传
- Java-反射机制学习
- Spring中自己主动装配