redisson整合spring
来源:互联网 发布:实体关系图软件 编辑:程序博客网 时间:2024/06/16 14:43
首先讲下什么是Redisson:Redisson是一个在Redis的基础上实现的Java驻内存数据网格(In-Memory Data Grid)。它不仅提供了一系列的分布式的Java常用对象,还提供了许多分布式服务。(摘自redisson的wiki:wiki地址)
redisson提供的api均以面向对象的操作方式,将key-value封装成我们熟悉的集合或者对象,我们可以通过封装的api更方便的操作数据。同时它提供了多个实现了java.util.corrurnent接口的集合类,让我们能在线程安全的环境下操作数据。
其中redis的官网也将它纳入推荐使用的工具中,可见redisson已经逐渐上位。
废话不多说,现在开始讲下怎么整合redisson到spring:
首先引入redisson的包:(如果你还在用手动加jar包的方式,那建议你赶紧学一下maven,用上后会让你有种便秘一星期后突然通便的清爽)
<dependency> <groupId>org.redisson</groupId><artifactId>redisson</artifactId><version>2.8.2</version> </dependency>
接下来新建redisson.xml文件:(可参考wiki:redisson配置教程)
<?xml version="1.0" encoding="UTF-8"?><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" xmlns:redisson="http://redisson.org/schema/redisson" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://redisson.org/schema/redisson http://redisson.org/schema/redisson/redisson.xsd"> <!-- 单台redis机器配置 <redisson:client id="redissonClient"> <redisson:single-server address="192.168.2.100:7000" connection-pool-size="30"/> </redisson:client> --> <!-- redis集群配置 --> <redisson:client id="redissonClient" > <redisson:cluster-servers scan-interval="10000"> <!-- //scan-interval:集群状态扫描间隔时间,单位是毫秒 --> <redisson:node-address value="192.168.2.100:7000"></redisson:node-address> <redisson:node-address value="192.168.2.100:7001"></redisson:node-address> <redisson:node-address value="192.168.2.100:7002"></redisson:node-address> <redisson:node-address value="192.168.2.100:7003"></redisson:node-address> <redisson:node-address value="192.168.2.100:7004"></redisson:node-address> <redisson:node-address value="192.168.2.100:7005"></redisson:node-address> </redisson:cluster-servers> </redisson:client></beans>
然后在Application.xml中引入redisson.xml:<import resource="classpath:/spring/redisson.xml" /> (路径记得自己改哦~)
至此我们redisson的环境就配置好了。接下来就是怎么操作它来操作redis:
首先新建一个工具类RedissonUtils:
package com.basic.common.utils.redis;import java.util.Map;import org.redisson.api.RAtomicLong;import org.redisson.api.RBucket;import org.redisson.api.RCountDownLatch;import org.redisson.api.RDeque;import org.redisson.api.RList;import org.redisson.api.RLock;import org.redisson.api.RMap;import org.redisson.api.RQueue;import org.redisson.api.RSet;import org.redisson.api.RSortedSet;import org.redisson.api.RTopic;import org.redisson.api.RedissonClient;import org.springframework.stereotype.Service;import com.basic.common.utils.generator.CollectionObjectConvert;@Servicepublic class RedissonUtils{ /** * 获取字符串对象 * @param redisson * @param t * @param objectName * @return */ public static <T> RBucket<T> getRBucket(RedissonClient redissonClient,String objectName){ RBucket<T> bucket=redissonClient.getBucket(objectName); return bucket; } /** * 获取Map对象 * @param redisson * @param objectName * @return */ public static <K,V> RMap<K, V> getRMap(RedissonClient redissonClient,String objectName){ RMap<K, V> map=redissonClient.getMap(objectName); return map; } /** * 获取有序集合 * @param redisson * @param objectName * @return */ public static <V> RSortedSet<V> getRSortedSet(RedissonClient redissonClient,String objectName){ RSortedSet<V> sortedSet=redissonClient.getSortedSet(objectName); return sortedSet; } /** * 获取集合 * @param redisson * @param objectName * @return */ public static <V> RSet<V> getRSet(RedissonClient redissonClient,String objectName){ RSet<V> rSet=redissonClient.getSet(objectName); return rSet; } /** * 获取列表 * @param redisson * @param objectName * @return */ public static <V> RList<V> getRList(RedissonClient redissonClient,String objectName){ RList<V> rList=redissonClient.getList(objectName); return rList; } /** * 获取队列 * @param redisson * @param objectName * @return */ public static <V> RQueue<V> getRQueue(RedissonClient redissonClient,String objectName){ RQueue<V> rQueue=redissonClient.getQueue(objectName); return rQueue; } /** * 获取双端队列 * @param redisson * @param objectName * @return */ public static <V> RDeque<V> getRDeque(RedissonClient redissonClient,String objectName){ RDeque<V> rDeque=redissonClient.getDeque(objectName); return rDeque; } /** * 此方法不可用在Redisson 1.2 中 * 在1.2.2版本中 可用 * @param redisson * @param objectName * @return */ /** public <V> RBlockingQueue<V> getRBlockingQueue(Redisson redisson,String objectName){ RBlockingQueue rb=redisson.getBlockingQueue(objectName); return rb; }*/ /** * 获取锁 * @param redisson * @param objectName * @return */ public static RLock getRLock(RedissonClient redissonClient,String objectName){ RLock rLock=redissonClient.getLock(objectName); return rLock; } /** * 获取原子数 * @param redisson * @param objectName * @return */ public static RAtomicLong getRAtomicLong(RedissonClient redissonClient,String objectName){ RAtomicLong rAtomicLong=redissonClient.getAtomicLong(objectName); return rAtomicLong; } /** * 获取记数锁 * @param redisson * @param objectName * @return */ public static RCountDownLatch getRCountDownLatch(RedissonClient redissonClient,String objectName){ RCountDownLatch rCountDownLatch=redissonClient.getCountDownLatch(objectName); return rCountDownLatch; } /** * 获取消息的Topic * @param redisson * @param objectName * @return */ public static <M> RTopic<M> getRTopic(RedissonClient redissonClient,String objectName){ RTopic<M> rTopic=redissonClient.getTopic(objectName); return rTopic; } }
然后我们需要在调用RedissonUtils的类中依赖进RedissonClient
@Autowired
private RedissonClient redisson;
只后便可以对redis进行操作啦
RMap<String, Object> map = RedissonUtils.getRMap(redisson,key);
map.put("key","value"); 调用到这个语句的同时就已经对redis中的数据进行了修改。
注意!redis最好是3.0以上的,官方发布的版本,不然会出现莫名其妙的错误
- Redisson整合Spring
- redisson整合spring
- Spring Boot+Shiro+Redis(redisson)整合时,采用内嵌tomcat启动错误原因分析
- 使用spring+redisson解决集群同步锁问题
- redisson推荐
- Redisson教程
- redisson总结
- SpringMVC-整合Spring整合
- spring整合
- Spring整合
- Spring -- spring整合struts2
- Spring、整合Spring+JDBC
- Spring:Spring整合Struts2
- Spring:Spring整合Hibernate
- Spring+Spring MVC整合
- Spring-----Spring整合Quartz
- [Spring]Redis+Spring整合
- 【Spring】Spring整合Struts2
- Twitter开源分布式自增ID算法snowflake(Java)
- 一、策略模式
- 企业架构方法综述
- 【leetcode-shell】Tenth Line
- 二维数组变一维数组,统计键值总和
- redisson整合spring
- 客户端跳转与服务器端跳转
- 微信支付接入流程——公众号支付
- Sublime Text2 插件 for ASM
- 计算基因组染色体长度的Python脚本
- 初入django2
- CentOS7上Apache impala2.7集成apache kudu1.3
- python 基础语法之一
- POI (excel)