Springboot集成Redis简介
redis的端口是6379
springboot添加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>
<version>2.6.0</version>
</dependency>
Spring Data Redis提供了两个模板类来进行数据的操作:
RedisTemplate
StringRedisTemplate只针对键值都是字符串的进行操作。
RedisTemplate,StringRedisTemplate主要数据访问方法:
opsForValue();操作只有简单属性的数据
opsForList();操作含有list的数据
opsForSet();操作含有set的数据
opsForZSet();操作含有有序set的数据
opsForHash();操作含有hash的数据
Serializer:
当数据存储到spring的时候,键和值都是通过Spring提供的Serializer序列化到数据库的,RedisTemplate默认使用JdkSerializationRedisSerializer序列化,
StringRedisTemplate默认使用StringRedisSerializer进行序列化。
springboot的支持:
在RedisAutoConfiguration配置类中,默认配置了RedisTemplate,StringRedisTemplate可以直接使用Redis存储数据库。
application.properties文件配置
# 数据库名称db0
spring.redis.database=0
#服务器地址
spring.redis.host=192.168.101.60
#连接端口
spring.redis.port=6379
#连接池最大连接数
spring.redis.max-idle=8
#连接池最小连接数
spring.redis.min-idle=0
#在给定时间内连接池能分配的最大连接数
spring.redis.max-active=8
#当资源耗尽时,抛出异常的等待时间,负值为无限期的阻止
spring.redis.max-wait=-1
实体类
public class Student implements Serializable {
private static final Long serialVersionUID=1L;
private String sno;
private String sname;
private String sage;
public Student() {
}
public Student(String sno, String sname, String sage) {
this.sno = sno;
this.sname = sname;
this.sage = sage;
}
setting,getting,toString方法
}
访问数据库类
@Repository
public class StudentDB {
@SuppressWarnings("unused")
@Autowired
private StringRedisTemplate stringRedisTemplate;
@SuppressWarnings("unused")
@Autowired
private RedisTemplate<String,String> redisTemplate;
@Resource(name = "stringRedisTemplate")
ValueOperations<String,String> valueOpsStr;
@Resource(name = "redisTemplate")
ValueOperations<Object,Object> valueOpsObject;
public void saveString(String key, String value) {
valueOpsStr.set(key, value);
}
public void saveStudent(Student student) {
valueOpsObject.set(student.getSno(), student);
}
public void saveStudentS(Object key, List<Student> students) {
valueOpsObject.set(key, students);
}
public String getString(String key) {
return valueOpsStr.get(key);
}
public Object getObj(String key) {
return valueOpsObject.get(key);
}
}
控制器类
@Controller
@RequestMapping("/stu")
public class StudentController {
@Autowired
private StudentDB studentDB;
@RequestMapping("/save")
public void save(){
Student student = new Student();
studentDB.saveString("uname", "haha");
Student student1 = new Student("111", "张三1", "77");
studentDB.saveStudent(student1);
Student student2 = new Student("222", "张三2", "77");
Student student3 = new Student("333", "张三3", "77");
ArrayList<Student> students = new ArrayList<>();
students.add(student2);
students.add(student2);
studentDB.saveStudentS("aa", students);
System.out.println("保存成功");
}
@GetMapping("/name")
public void getUname() {
String uname = studentDB.getString("uname");
System.out.println(uname);
}
@GetMapping("/student")
public void getStudent() {
Object obj = studentDB.getObj("111");
System.out.println(obj);
}
@GetMapping("/students")
public void getStudents() {
Object aa = studentDB.getObj("aa");
System.out.println(aa);
}
}
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/244953.html