應對車芯荒,英飛凌計劃將印尼封測產能翻倍
阿新 • • 發佈:2022-04-13
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);
}
}