概述
本文主要对redis与springboot的进行了整合,并尝试了对redis的五种类型 String、List、Set 、ZSet、Hash的简单操作
pom.xml
导入spring-data-redis 的依赖以及连接池 的依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
</dependency>
配置文件
以本地连接为例
spring.redis.database=0
spring.redis.host=localhost
spring.redis.port=6379
pojo
创建Student 类因为需要存取,需要实现序列化
@Data
public class Student implements Serializable {
private int id;
private String name;
private int score;
private Date birthday;
}
控制层
主要通过RedisTemplate 类的实例对redis进行数据操作
@RestController
public class StudentHandler {
@Autowired
private RedisTemplate redisTemplate;
@GetMapping("/list")
public List<String> list(){
ListOperations<String,String> ls=redisTemplate.opsForList();
ls.leftPush("a","freedom");
ls.leftPush("a","hello");
ls.leftPush("a","world");
//截断方式取值
List<String> ls1=ls.range("a",0,2);
return ls1;
}
@GetMapping("/set")
public Set<String> set(){
SetOperations<String,String> so=redisTemplate.opsForSet();
so.add("key","123");
so.add("key","12313");
so.add("key","83624");
Set<String> set=so.members("key");
return set;
}
@GetMapping("/zset")
public Set<String> ZSet(){
ZSetOperations<String,String> zso=redisTemplate.opsForZSet();
zso.add("a1","stu0",1);
zso.add("a1","1",2);
zso.add("a1","stu2",3);
Set<String> set=zso.range("a1",0,2);
return set;
}
@GetMapping("/hashMap")
public void map(){
HashOperations<String,String,String> hashOperation=redisTemplate.opsForHash();
hashOperation.put("hash","1","hello");
hashOperation.put("hash","2","world");
hashOperation.put("hash","3","!");
System.out.println(hashOperation.get("hash","2"));
}
@PostMapping("/string")
public Student getString(@RequestBody Student student){
redisTemplate.opsForValue().set("student",student);
Student st=(Student)redisTemplate.opsForValue().get("student");
System.out.println(st);
return st;
}