1、导入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<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>
<!--lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
2、创建实体类,实现序列化接口
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
@Data
//实现序列化接口,否则无法存入redis
public class Student implements Serializable {
private Integer id;
private String name;
private Double score;
private Date birthday;
}
3、创建控制器
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class StudentController {
@Autowired
private RedisTemplate redisTemplate;
@PostMapping("/set")
//Request将json数据转换成java对象
public void set(@RequestBody Student student){
redisTemplate.opsForValue().set("student",student);
}
}
4、创建配置文件application.yml
spring:
redis:
database: 0
host: localhost
port: 6379
5、redis的crud操作
@GetMapping("/get/{key}")
public Student get(@PathVariable("key") String key){
return (Student) redisTemplate.opsForValue().get(key);
}
@DeleteMapping("/delete/{key}")
public boolean delete(@PathVariable("key") String key){
redisTemplate.delete(key);
//判断是否还存在key,如果返回false,说明删除成功
return redisTemplate.hasKey(key);
}
Redis五种数据类型
- 字符串
@GetMapping("/String")
public String stringTest(){
redisTemplate.opsForValue.set("str","hello world");
return (String)redisTemplate.opsForValue().get("str");
}
- 列表
@GetMapping("list")
public List<String> listTest(){
ListOperations<String,String> listOperations = redisTemplate.opsForList();
listOperations.leftPush("list","li");
listOperations.leftPush("list","jia");
listOperations.leftPush("list","hao");
return listOperations.range("list",0,2);
}
- 集合(set)
@GetMapping("/set")
public set<String> setTest(){
SetOperations<String,String> setOperations = redisTemplate.opsForSet();
setOperations.add("set","jia");
setOperations.add("set","you");
setOperations.add("set","aaa");
return setOperations.members("set");
}
- 有序集合(zset)
@GetMapping("/zset")
public Set<String> zsetTest(){
ZSetOperations<String,String> zSetOperations = redisTemplate.opsForZSet();
zSetOperations.add("zset","Hello",1);
zSetOperations.add("zset","world",2);
zSetOperations.add("zset","java",3);
Set<String> set = zSetOperations.range("zset",0,2);
return set;
}
- 哈希key hashkey value
HashMap hashMap = new HashMap();
hashMap.put(key1,value1);
HashMap hashMap = new HashMap();
hashMap.put(key2,value2);
HashMap hashMap = new HashMap();
hashMap.put(key3,value3);
HashOperations<String,String,String> hashOperation = redisTemplate.opsForHash();
hashOperation.put(hashMap1,key1,value1);
hashOperation.put(hashMap2,key2,value2);
hashOperation.put(hashMap3,key3,value3);
@GetMapping("/hash")
public void hashTest(){
HashOperations<String,String,String> hashOperations = redisTemplate.opsForHash();
hashOperations.put("key","hashKey","Hello");
System.out.println(hashOperations.get("key","hashKey"));
}