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);
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。