Spring Boot基础学习08 - Spring Boot整合Redis
文章目录
- 一、使用Spring Boot 整合 Redis
- (一)搭建Redis环境
- 1.下载Redis安装压缩包
- 2.将Redis安装包解压到到D:\Program Files\redis目录
- 3.给Redis配置环境变量
- 4.启动Redis服务器
- 5.启动Redis客户端
- (二)安装Redis可视化管理工具
- 1.下载Redis可视化管理工具
- 2.安装Redis可视化管理工具
- 3.启动Redis可视化管理工具
- 4.Redis可视化工具连接Redis服务
- 5.打开Redis可视化工具的控制台
- 6.利用可视化工具操作键值对
- (三)创建Spring Boot项目RedisDemo
- (四)创建实体类
- 1.创建地址实体类Address
- 2.创建家庭实体类Family
- 3.创建人实体类Person
- (五)创建自定义Repository接口
- (六)在全局配置文件配置Redis属性
- (七)在测试类里编写测试方法
- 1.创建测试方法testAddPerson()
- 2.创建测试方法testFindAll()
- 3.测试personRespository的其它方法(课堂作业)
- (八)测试自定义个性化查询方法
- 1.在PersonRepository接口定义方法
- 2.在测试类创建测试方法testFindPersonByLastName()
- 二、课后作业
- 任务1:在测试类创建测试方法testFindByLastName()
- 任务2、在测试类创建测试方法testFindPersonByLastNameAndFirstName()
- 任务3、在测试类创建测试方法testFindByAddress_City()
- 任务4、在测试类创建测试方法testFindByFamilyList_Name()
一、使用Spring Boot 整合 Redis
(一)搭建Redis环境
1.下载Redis安装压缩包
下载:https://pan.baidu.com/s/1x8AV7w1PE6fR7xS7lwAOWg
提取码:j4hq
2.将Redis安装包解压到到D:\Program Files\redis目录
3.给Redis配置环境变量
4.启动Redis服务器
- 启动命令行窗口,键入redis-server命令
5.启动Redis客户端
- 启动命令行窗口,键入redis-cli命令 - 创建键值对,按键获取值 - 键入exit命令,退出客户端
- 注意:如出现下图情况,原因是在cmd窗口输入redis-server后,关闭该窗口输入redis-cli导致(所以输入命令redis-server后,不要关闭,重新打开cmd窗口输入redis-cli)
(二)安装Redis可视化管理工具
1.下载Redis可视化管理工具
下载:https://pan.baidu.com/s/1EaCKpkGr04QM8QHu3H-G_g
提取码:oonx
2.安装Redis可视化管理工具
3.启动Redis可视化管理工具
4.Redis可视化工具连接Redis服务
- 在命令行窗口,启动Redis服务
5.打开Redis可视化工具的控制台
在控制台创建键值对,按键获取值
可视化查看刚才创建的键值对
6.利用可视化工具操作键值对
创建键值对
(三)创建Spring Boot项目RedisDemo
(四)创建实体类
1.创建地址实体类Address
package net.lbj.lesson08.bean;import org.springframework.data.redis.core.index.Indexed;/*** 地址实体类* 20210517*/
public class Address {@Indexedprivate String country; //国家@Indexedprivate String city; //城市public Address(String country, String city) {this.country = country;this.city = city;}public String getCountry() {return country;}public void setCountry(String country) {this.country = country;}public String getCity() {return city;}public void setCity(String city) {this.city = city;}@Overridepublic String toString() {return "Address{" +"country='" + country + '\'' +", city='" + city + '\'' +'}';}
}
2.创建家庭实体类Family
package net.lbj.lesson08.bean;import org.springframework.data.redis.core.index.Indexed;/*** 家庭实体类* 20210517*/
public class Family {@Indexedprivate String type; //成员类型@Indexedprivate String name; //成员名public Family(String type, String name) {this.type = type;this.name = name;}public String getType() {return type;}public void setType(String type) {this.type = type;}public String getName() {return name;}public void setName(String name) {this.name = name;}@Overridepublic String toString() {return "Family{" +"type='" + type + '\'' +", name='" + name + '\'' +'}';}
}
3.创建人实体类Person
package net.lbj.lesson08.bean;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;/*** 人实体类* 20210517*/
@RedisHash("person")
public class Person {@Id //主键private String id;//生成二级索引,方便查询@Indexedprivate String firstName; //名@Indexedprivate String lastName; //姓private Address address; //家庭地址private List<Family> familyList; //家庭成员public Person(String id, String firstName, String lastName, Address address, List<Family> familyList) {this.id = id;this.firstName = firstName;this.lastName = lastName;this.address = address;this.familyList = familyList;}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<Family> getFamilyList() {return familyList;}public void setFamilyList(List<Family> familyList) {this.familyList = familyList;}@Overridepublic String toString() {return "Person{" +"id='" + id + '\'' +", firstName='" + firstName + '\'' +", lastName='" + lastName + '\'' +", address=" + address +", familyList=" + familyList +'}';}
}
(五)创建自定义Repository接口
在net.lbj.lesson08包里创建repository子包,并在子包中创建接口PersonRepository
(六)在全局配置文件配置Redis属性
(七)在测试类里编写测试方法
1.创建测试方法testAddPerson()
@Testpublic void testAddPerson() {// 添加第一个人Address address = new Address("中国", "泸州");Family family1 = new Family("儿子", "张晓承");Family family2 = new Family("女儿", "张晓霞");List<Family> familyList = new ArrayList<Family>();familyList.add(family1);familyList.add(family2);Person person = new Person("1", "莫言", "张", address, familyList);personRepository.save(person);// 添加第二个人address = new Address("中国", "上海");family1 = new Family("儿子", "李诚源");family2 = new Family("女儿", "李晓丽");familyList = new ArrayList<Family>();familyList.add(family1);familyList.add(family2);person = new Person("2", "承鹏", "李", address, familyList);personRepository.save(person);// 添加第三个人address = new Address("中国", "北京");family1 = new Family("儿子", "唐玉海");family2 = new Family("女儿", "唐雨涵");familyList = new ArrayList<Family>();familyList.add(family1);familyList.add(family2);person = new Person("3", "大明", "唐", address, familyList);personRepository.save(person);// 添加第四个人address = new Address("中国", "北京");family1 = new Family("儿子", "张大明");family2 = new Family("女儿", "张丽丽");familyList = new ArrayList<Family>();familyList.add(family1);familyList.add(family2);person = new Person("4", "文勇", "张", address, familyList);personRepository.save(person);System.out.println("成功地添加了4条记录~");}
运行查看结果
在命令行窗口启动redis服务
再次运行查看结果
打开Redis可视化工具查看
2.创建测试方法testFindAll()
3.测试personRespository的其它方法(课堂作业)
- 创建测试方法testFindById()
- 创建测试方法deleteAll()
运行testFindAll()查看
(八)测试自定义个性化查询方法
1.在PersonRepository接口定义方法
package net.lbj.lesson08.repository;import net.lbj.lesson08.bean.Person;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.repository.CrudRepository;import java.util.List;/*** 人仓库接口* 20210517*/
public interface PersonRepository extends CrudRepository<Person, String> {//自定义个性化查询,方法名需要符合特定的规范List<Person> findByLastName(String lastName);Page<Person> findPersonByLastName(String lastName, Pageable pageable);List<Person> findPersonByLastNameAndFirstName(String lastName, String firstName);List<Person> findByAddress_City(String city);List<Person> findByFamilyList_Name(String name);
}
2.在测试类创建测试方法testFindPersonByLastName()
二、课后作业
注意:在运行的时候,一定要在cmd运行命令:redis-server
任务1:在测试类创建测试方法testFindByLastName()
查找姓“张”的记录
任务2、在测试类创建测试方法testFindPersonByLastNameAndFirstName()
查找lastName为“唐”,firstName为“大明”的记录
任务3、在测试类创建测试方法testFindByAddress_City()
查找“北京”的记录
任务4、在测试类创建测试方法testFindByFamilyList_Name()
查找“唐雨涵”
完整RedisDemoApplicationTests代码
package net.lbj.lesson08;import net.lbj.lesson08.bean.Address;
import net.lbj.lesson08.bean.Family;
import net.lbj.lesson08.bean.Person;
import net.lbj.lesson08.repository.PersonRepository;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;import java.util.ArrayList;
import java.util.List;
import java.util.Optional;@SpringBootTest
class RedisDemoApplicationTests {@Autowired //注入个人仓库private PersonRepository personRepository;@Testvoid contextLoads() {}@Testpublic void testAddPerson() {// 添加第一个人Address address = new Address("中国", "泸州");Family family1 = new Family("儿子", "张晓承");Family family2 = new Family("女儿", "张晓霞");List<Family> familyList = new ArrayList<Family>();familyList.add(family1);familyList.add(family2);Person person = new Person("1", "莫言", "张", address, familyList);personRepository.save(person);// 添加第二个人address = new Address("中国", "上海");family1 = new Family("儿子", "李诚源");family2 = new Family("女儿", "李晓丽");familyList = new ArrayList<Family>();familyList.add(family1);familyList.add(family2);person = new Person("2", "承鹏", "李", address, familyList);personRepository.save(person);// 添加第三个人address = new Address("中国", "北京");family1 = new Family("儿子", "唐玉海");family2 = new Family("女儿", "唐雨涵");familyList = new ArrayList<Family>();familyList.add(family1);familyList.add(family2);person = new Person("3", "大明", "唐", address, familyList);personRepository.save(person);// 添加第四个人address = new Address("中国", "北京");family1 = new Family("儿子", "张大明");family2 = new Family("女儿", "张丽丽");familyList = new ArrayList<Family>();familyList.add(family1);familyList.add(family2);person = new Person("4", "文勇", "张", address, familyList);personRepository.save(person);System.out.println("成功地添加了4条记录~");}@Testpublic void testFindAll() {Iterable<Person> persons = personRepository.findAll();persons.forEach(person -> System.out.println(person));}@Testpublic void testFindById() {Optional<Person> person = personRepository.findById("2");System.out.println(person);}@Testpublic void testDeleteAll() {personRepository.deleteAll();System.out.println("删除成功");}@Testpublic void testFindPersonByLastName() {//排序 - 降序Sort.Direction sort = Sort.Direction.DESC;//创建分页器Pageable pageable = PageRequest.of(0, 2, sort, "id");//获取页面Page<Person> page = personRepository.findPersonByLastName("张", pageable);//输出页面内容for (Person person : page.getContent()) {System.out.println(person);}}@Testpublic void testFindByLastName() {//获取页面List<Person> persons= personRepository.findByLastName("张");//输出页面内容System.out.println(persons);}@Testpublic void testFindPersonByLastNameAndFirstName() {//获取页面List<Person> persons= personRepository.findPersonByLastNameAndFirstName("唐", "大明");//输出页面内容System.out.println(persons);}@Testpublic void testFindByAddress_City() {//获取页面List<Person> persons= personRepository.findByAddress_City("北京");//输出页面内容System.out.println(persons);}@Testpublic void testFindByFamilyList_Name() {//获取页面List<Person> persons= personRepository.findByFamilyList_Name("唐雨涵");//输出页面内容System.out.println(persons);}
}
Spring Boot基础学习08 - Spring Boot整合Redis相关推荐
- 【Spring源码学习】Spring Bean的销毁
[Spring源码学习]Spring Bean的销毁 一.注册bean销毁的类 1.registerDisposableBeanIfNecessary() 2.DisposableBeanAdapte ...
- Spring Boot基础学习笔记08:Spring Boot整合Redis
文章目录 零.学习目标 1.熟悉Redis相关概念 2.掌握使用Spring Boot整合Redis 一.Redis概述 1.Redis简介 2.Redis优点 (1)存取速度快 (2)数据类型丰富 ...
- Spring Boot基础学习笔记12:组件注册整合Servlet三大组件
文章目录 零.学习目标 一.整合Servlet三大组件概述 (一)组件注册整合Servlet三大组件 (二)路径扫描整合Servlet三大组件 二.创建Spring Boot项目 - Integrat ...
- Spring Boot基础学习笔记20:Spring Security入门
文章目录 零.学习目标 一.Spring Security (一)Spring Security概述 (二)Spring Boot整合Spring Security实现的安全管理功能 二.基础环境搭建 ...
- Spring Boot基础学习笔记02:Spring Boot项目单元测试、热部署与原理分析
文章目录 零.学习目标 1.掌握Spring Boot单元测试实现 2.掌握Spring Boot热部署实现 3.熟悉Spring Boot基本原理 一.Spring Boot单元测试 (一)Spri ...
- Spring Boot基础学习笔记01:Spring Boot入门程序
文章目录 零.学习目标 1.了解Spring Boot框架的优点 2.掌握使用Maven方式构建Spring Boot项目 3.掌握使用Spring Initializr方式构建Spring Boot ...
- SpringMVC学习08之SSM整合(三)
回顾 上一章我们完成了Mybatis底层的编写 Spring层配置 一.spring层配置 1.配置Spring整合MyBatis,我们这里数据源使用c3p0连接池 2.编写Spring整合Mybat ...
- spring源码学习:spring初始化流程
首先借个图,说明一下spring的bean的整个生命流程. 销毁什么的这个看图就知道怎么回事,使用的话一般都是纯业务,而且我们更关心spring是怎么初始化的,初始化成我们定义的那个样子.我们就是以这 ...
- Redis学习(含 Springboot 整合 Redis)
Redis NoSQL (not only sql) 在现代的计算系统上每天网络上都会产生庞大的数据量. 这些数据有很大一部分是由关系数据库管理系统(RDBMS)来处理. 1970年 E.F.Codd ...
- Spring Boot基础学习笔记06:Spring Boot整合MyBatis
文章目录 零.学习目标 1.了解Spring Boot数据访问概述 2.掌握使用注解的方式整合MyBatis 3.掌握使用配置文件的方式整合MyBatis 一.Spring Boot数据访问概述 二. ...
最新文章
- 然并卵:BF 科普 BF 解释器的 JS 实现
- Python基础——PyCharm版本——第八章、文件I/O(XML)
- 牛客练习赛76 E 牛牛数数(线性基加二分)
- rocksdb ubuntu c++源码编译测试
- 【转】Java魔法堂:String.format详解
- Shank的大步小步算法(Shank‘s Baby-Step-Giant-Step Algorithm)
- microsoft符合服务器加载符号的解决方案
- 理想汽车交付失误 油门踩到底速度最高30迈,李想:是我们太蠢了
- JDBC工具类DataSourceUtils,dao接口代码示例;
- 微信私人心情录小程序源码
- 微信多客服系统开发教程
- 四、音频如何从USB输入输出
- Windows 服务(1) (from MSDN)
- iOS 14.6渣优化,续航噩梦
- ClickHouse中文官方文档
- SwiftUI iOS 精品完成项目之宠物展示与领养App MVVM(教程含源码)
- Python对于私有化的处理
- 我的第一个flash作品-遮罩层-瀑布
- 绘制二元正态分布的密度函数图和等高线图MATLAB
- 华为荣耀5cvs华为v9play_荣耀畅玩7C和荣耀V9Play综合对比评测 看完这些在决定
热门文章
- win10 安装 hadoop 3.3.1报错 Unable to load native-hadoop library
- C语言:数组排序(冒泡法排序)
- DIM抠图网络 Deep Image Matting 论文笔记
- [小白slam攻略]ROVIO安装运行及保存轨迹用evo评估
- 视觉惯性里程计 综述 VIO Visual Inertial Odometry msckf ROVIO ssf msf okvis ORB-VINS VINS-Mono gtsam
- rar压缩包密码解密工具
- 一次spinlock死锁故障的定位(太经典,收藏!)
- HTML5视频和音频常见的格式,HTML5中视频音频的使用详解
- 英语面试自我介绍范文
- shortcutwebsite