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); } }