欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 文化 > spring boot 整合redis

spring boot 整合redis

2025/4/12 18:31:17 来源:https://blog.csdn.net/daqi1983/article/details/146798160  浏览:    关键词:spring boot 整合redis

1.在pom文件中添加spring-boot-starter-data-redis依赖启动器

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

2.编写三个实体类

Person类

@RedisHash("persons")  // 指定操作实体类对象在Redis数据库中的存储空间
public class Person {@Id// 标识实体类主键private String id;// 标识对应属性在Redis数据库中生成二级索引,索引名就是属性名,可以方便地进行数据条件查询@Indexedprivate String firstname;@Indexedprivate String lastname;private Address address;private List<FamilyMember> familyMemberList;public Person() {    }public Person(String firstname, String lastname) {this.firstname = firstname;this.lastname = lastname;}public String getId() {return id;}public void setId(String id) {this.id = id;}public String getFirstname() {return firstname;}public void setFirstname(String firstname) {this.firstname = firstname;}public String getLastname() {return lastname;}public void setLastname(String lastname) {this.lastname = lastname;}public Address getAddress() {return address;}public void setAddress(Address address) {this.address = address;}public List<FamilyMember> getFamilyMemberList() {return familyMemberList;}public void setFamilyMemberList(List<FamilyMember> familyMemberList) {this.familyMemberList = familyMemberList;}@Overridepublic String toString() {return "Person{" +"id='" + id + '\'' +", firstname='" + firstname + '\'' +", lastname='" + lastname + '\'' +", address=" + address +", familyMemberList=" + familyMemberList +'}';}
}

 Address 地址类

public class Address {@Indexedprivate String city;@Indexedprivate String country;public Address() {}/**** @param city 城市* @param country 国家*/public Address(String city, String country) {this.city = city;this.country = country;}public String getCity() {return city;}public void setCity(String city) {this.city = city;}public String getCountry() {return country;}public void setCountry(String country) {this.country = country;}@Overridepublic String toString() {return "Address{" +"city='" + city + '\'' +", country='" + country + '\'' +'}';}
}

 FamilyMember 家庭成员类

public class FamilyMember {@Indexedprivate String type;@Indexedprivate String username;public FamilyMember() {}public FamilyMember(String type, String username) {this.type = type;this.username = username;}public String getType() {return type;}public void setType(String type) {this.type = type;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}@Overridepublic String toString() {return "FamilyMember{" +"type='" + type + '\'' +", username='" + username + '\'' +'}';}
}

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> findByFamilyMemberList_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
class RedisTests {@Autowiredprivate PersonRepository personRepository;@Testpublic void testSave(){Person person1 = personRepository.save(new Person("James", "Harden"));System.out.println(person1);Person person2 = new Person("张", "有才");Address address = new Address("北京", "中国");person2.setAddress(address);//创建并添加家庭成员FamilyMember familyMember1 = new FamilyMember("父亲", "张朝阳");FamilyMember familyMember2 = new FamilyMember("母亲", "王美美");ArrayList<FamilyMember> familyMembers = new ArrayList<>();familyMembers.add(familyMember1);familyMembers.add(familyMember2);person2.setFamilyMemberList(familyMembers);System.out.println(personRepository.save(person2));}@Testpublic void selectPerson() {List<Person> list = personRepository.findByAddress_City("北京");System.out.println(list);}@Testpublic void updatePerson() {Person person = personRepository.findByFirstnameAndLastname("张","有才").get(0);person.setLastname("小明");Person update = personRepository.save(person);System.out.println(update);}@Testpublic void deletePerson() {Person person = personRepository.findByFirstnameAndLastname("张","小明").get(0);personRepository.delete(person);}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词