一、相关依赖
<!--edisson-->
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson-spring-boot-starter</artifactId>
<version>3.13.1</version>
<exclusions>
<exclusion>
<groupId>org.redisson</groupId>
<artifactId>redisson-spring-data-22</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson-spring-data-18</artifactId>
<version>3.13.1</version>
</dependency>
<dependency>
<groupId>de.ruedigermoeller</groupId>
<artifactId>fst</artifactId>
<version>2.57</version>
</dependency>
<dependency>
<groupId>org.apache.avro</groupId>
<artifactId>avro</artifactId>
<version>1.10.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-avro</artifactId>
<version>2.8.5</version>
</dependency>
二、注入redisson实例
package com.xxx.xxx.xxx.config;
import org.redisson.Redisson;
import org.redisson.api.RedissonClient;
import org.redisson.client.codec.Codec;
import org.redisson.codec.FstCodec;
import org.redisson.config.Config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* Created by liruigao
* Date: 2020-08-31 21:20
* Description:
*/
@Configuration
public class RedissonConfig {
@Bean
public RedissonClient getRedisson(){
Config config = new Config();
//单机模式 依次设置redis地址和密码
config.useSingleServer()
.setAddress("redis://x.x.x.x:xxxx")
.setDatabase(x);
return Redisson.create(config);
}
@Bean
public Codec codeC() {
return new FstCodec();
}
}
三、定义实体类
package com.xxx.xxx.xxx.model.group;
import java.io.Serializable;
/**
* Created by liruigao
* Date: 2020-08-31 21:46
* Description:
*/
public class Group implements Serializable {
private static final long serialVersionUID = 1L;
private Long groupId;
private Long lastChatTime;
private Long count;
public Long getGroupId() {
return groupId;
}
public void setGroupId(Long groupId) {
this.groupId = groupId;
}
public Long getLastChatTime() {
return lastChatTime;
}
public void setLastChatTime(Long lastChatTime) {
this.lastChatTime = lastChatTime;
}
public Long getCount() {
return count;
}
public void setCount(Long count) {
this.count = count;
}
@Override
public String toString() {
return "Group{"
+ "groupId=" + groupId
+ ", lastChatTime=" + lastChatTime
+ ", count=" + count
+ '}';
}
}
ps:注意实体类包名存取要一致
四、调用测试
package com.xxx.xxx.xxx;
import com.xxx.model.group.Group;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.redisson.api.RMap;
import org.redisson.api.RMapCache;
import org.redisson.api.RedissonClient;
import org.redisson.client.codec.Codec;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import javax.annotation.Resource;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* Created by liruigao
* Date: 2020-04-10 14:38
* Description:
*/
//@Ignore
@SpringBootTest(classes = App.class)
@RunWith(SpringJUnit4ClassRunner.class)
public class RedisServiceTest {
@Resource
private RedissonClient redissonClient;
@Autowired
Codec codec;
@Test
public void redissonTest() {
RMapCache<Long, Group> rmap = redissonClient.getMapCache("GROUP", codec);
Group group = new Group();
group.setGroupId(1L);
group.setCount(1L);
group.setLastChatTime(System.currentTimeMillis());
rmap.put(1L, group);
Group rlt = rmap.get(1L);
System.out.println(rlt);
}
}
output
Group{groupId=1, lastChatTime=1599472543991, count=1}