1.在pom文件中添加spring-boot-starter-data-redis依賴啟動器
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
2.編寫三個實體類
@RedisHash("persons") ?// 指定操作實體類對象在Redis數據庫中的存儲空間
public?class?Person {@Id// 標識實體類主鍵private?String id;// 標識對應屬性在Redis數據庫中生成二級索引,索引名就是屬性名,可以方便地進行數據條件查詢@Indexedprivate?String firstname;@Indexedprivate?String lastname;private Address address;private?List<Family>familyList;public?Person() {??? }public?Person(String firstname, String lastname) {this.firstname?= firstname;this.lastname?= lastname;}//補充get set toString}
public class Address {@Indexedprivate String city;@Indexedprivate String country;public Address() {}public Address(String city, String country) {this.city = city;this.country = country;}//補充get set toString}
public class Family {@Indexedprivate String type;@Indexedprivate String username;public Family() {??? }public Family(String type, String username) {this.type = type;this.username = username;}//補充get set toString}
3.編寫Repository接口
不需要添加spring-boot-starter-data-jpa這個依賴,即:
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
?只要繼承CrudRepository即可,如下:
public interface PersonRepository extends CrudRepository<Person, String> {List<Person> findByLastname(String lastname);Page<Person> findPersonByLastname(String lastname, Pageable page);List<Person> findByFirstnameAndLastname(String firstname, String lastname);List<Person> findByAddress_City(String city);List<Person> findByFamilyList_Username(String username);}
4.在全局配置文件application.properties中添加Redis數據庫連接配置
# Redis服務器地址
spring.redis.host=127.0.0.1# Redis服務器連接端口
spring.redis.port=6379# Redis服務器連接密碼(默認為空)
spring.redis.password=
5.編寫單元測試進行接口方法測試以及整合測試
@SpringBootTest
public?class?RedisTests {@Autowiredprivate?PersonRepository repository;@Testpublic void?savePerson() {Person person?=new?Person("張","有才");Person person2?=new?Person("James","Harden");// 創建并添加住址信息Address address=new?Address("北京","China");person.setAddress(address);// 創建并添加家庭成員List<Family>list?=new?ArrayList<>();Family dad?=new?Family("父親","張良");Family mom?=new?Family("母親","李香君");list.add(dad);list.add(mom);person.setFamilyList(list);// 向Redis數據庫添加數據Person save?= repository.save(person);Person save2?= repository.save(person2);System.out.println(save);System.out.println(save2);}@Testpublic void?selectPerson() {List<Person>list?= repository.findByAddress_City("北京");System.out.println(list);}@Testpublic void updatePerson() {Person person?= repository.findByFirstnameAndLastname("張","有才").get(0);person.setLastname("小明");Person update?= repository.save(person);System.out.println(update);}@Testpublic void?deletePerson() {Person person?= repository.findByFirstnameAndLastname("張","小明").get(0);repository.delete(person);}}