SpringBoot学习之路(七)——SpringBoot整合Redis

SpringBoot整合Redis

Redis下载地址https://github.com/microsoftarchive/redis/releases

SpringBoot学习之路(七)——SpringBoot整合Redis_第1张图片

 

下载完安装包“Redis-x64-3.2.100.zip”解压到自定义目录即可,不需要进行额外的配置

在解压目录下有多个目录文件,其中有两个重要的可执行文件

redis-server.exe 用于开启Redis服务(双击即可)默认端口号为6379

redis-cli.exe 用于开启客户端工具(也可以用可视化客户端工具Redis Desktop Manager,直接官网redisdesktop官网下载并安装,然后连接redis即可)

配置可视化工具方便查看数据

SpringBoot学习之路(七)——SpringBoot整合Redis_第2张图片

 

有了redis环境后,就可以在项目中整合redis了

1、在项目pom.xml中添加Redis的依赖启动器(SpringBoot为Redis实现了自动配置,统一管理版本号信息而不需要自己手动配置)



    org.springframework.boot
    spring-boot-starter-data-redis

2、编写实体类

import org.springframework.data.redis.core.index.Indexed;
public class Address {
    @Indexed //标识对应属性在Redis数据库中生成二级索引
    private String city;
    @Indexed
    private String country;
​
    public Address() {
    }
​
    public Address(String city, String country) {
        this.city = city;
        this.country = country;
    }
    // 省略gettet和setter方法
    // 省略toString方法
}
import org.springframework.data.redis.core.index.Indexed;
public class Family {
    @Indexed
    private  String type;
    @Indexed
    private  String username;
​
    public Family() {
    }
​
    public Family(String type, String username) {
        this.type = type;
        this.username = username;
    }
    // 省略gettet和setter方法
    // 省略toString方法
}
import org.springframework.data.annotation.Id;
import org.springframework.data.redis.core.RedisHash;
import org.springframework.data.redis.core.index.Indexed;
​
import java.util.List;
​
@RedisHash("persons")//  指定操作实体类对象在Redis数据库中的存储空间
public class persons {
    @Id  // 标识实体类主键
    private  String id;
    @Indexed //标识对应属性在Redis数据库中生成二级索引
    private String firstname;
    @Indexed
    private String lastname;
    private Address address;
    private List familyList;
​
    public persons() {
    }
​
    public persons(String firstname, String lastname) {
        this.firstname = firstname;
        this.lastname = lastname;
    }
    // 省略gettet和setter方法
    // 省略toString方法
}

Redis几个主要注解说明

@RedisHash("persons"): 指定操作实体类对象在Redis数据库中的存储空间。表示针对persons实体类的数据操作都存储在Redis数据库中名为persons的存储空间下

@Id :标识实体类主键。在Redis数据库中会默认生成字符串形式的HashKey表示唯一的实体对象id

@Indexed :标识对应属性在Redis数据库中生成二级索引。使用该注解后会在Redis数据库中生成属性对应的二级索引,索引名称就是属性名,可以方便地进行数据条件查询。

3、编写Repository接口,在src/main/java/com/chen下新建repository包,在该包下新建PersonRepository

import com.chen.redisDomain.persons;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.repository.CrudRepository;
​
import java.util.List;
​
public interface PersonRepository extends CrudRepository {
    List findByLastName(String lastname);
    Page findPersonByLastName(String lastname, Pageable page);
    List findByFirstNameAndLastName(String firstname, String lastname);
    List findByAddress_City(String city);
    List findByFamilyList_Username(String username);
}

4、在application.properties全局配置文件下配置Redis数据库

#配置Redis服务器
#redis服务器地址
spring.redis.host=127.0.0.1
#redis服务器连接端口
spring.redis.port=6379
#redis服务器连接密码(默认为空)
spring.redis.password=

5、编写测试类

import com.chen.redisDomain.Address;
import com.chen.redisDomain.Family;
import com.chen.redisDomain.persons;
import com.chen.repository.PersonRepository;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
​
import java.util.ArrayList;
​
@RunWith(SpringRunner.class)
@SpringBootTest
public class RedisTest {
​
    @Autowired
    private PersonRepository personRepository;
​
    @Test
    public void savePerson(){
        persons person = new persons("吴","有才");
        persons person1 = new persons("James","Harden");
        Address address = new Address("北京","USA");
        person.setAddress(address);
        ArrayList list = new ArrayList<>();
        Family dad = new Family("儿子", "张良");
        Family mom = new Family("母亲", "李香君");
        list.add(dad);
        list.add(mom);
        person.setFamilyList(list);
        persons save = personRepository.save(person);
        persons save1 = personRepository.save(person1);
        System.out.println(save);
        System.out.println(save1);
    }
}

6、运行测试类

SpringBoot学习之路(七)——SpringBoot整合Redis_第3张图片

打开Redis Desktop Maneger 查看Redis数据

SpringBoot学习之路(七)——SpringBoot整合Redis_第4张图片

项目结构图

SpringBoot学习之路(七)——SpringBoot整合Redis_第5张图片

 

你可能感兴趣的:(SpringBoot,java,maven,spring,boot)