Java教程

springboot集成redis

本文主要是介绍springboot集成redis,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

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

这篇关于springboot集成redis的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!