Spring Boot整合Redis-lesson8
整合Redis
- 1.安装Redis
- 创建spring boot项目
- 2.整合Redis
- 创建bean文件 写入相关对象
- 创建仓库接口 - PersonRepository
- 在全局配置文件配置Redis属性
- 测试代码
1.安装Redis
安装完成后
配置环境变量
在cmd输入redis-serve 打开redis服务
创建spring boot项目
2.整合Redis
创建bean文件 写入相关对象
package net.zl.lesson08redis.bean;import org.springframework.data.redis.core.index.Indexed;/*** @author zoulei* @create_time 2021-05-26-8:42*/
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 + '\'' +'}';}
}
package net.zl.lesson08redis.bean;
import org.springframework.data.redis.core.index.Indexed;
/*** @author zoulei* @create_time 2021-05-26-8:53*/
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 + '\'' +'}';}
}
package net.zl.lesson08redis.bean;import org.springframework.data.annotation.Id;
import org.springframework.data.redis.core.RedisHash;
import org.springframework.data.redis.core.index.Indexed;
import org.springframework.data.redis.core.index.PathBasedRedisIndexDefinition;import java.util.List;/*** @author zoulei* @create_time 2021-05-26-9:03*/
@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 +'}';}
}
说明:注解@RedisHash(“persons”),表明在redis数据库中开启一个persons的内存空间,所有person操作相关的数据均保存在此空间(redis是内存数据库)。
创建仓库接口 - PersonRepository
import java.util.List;/*** @author zoulei* @create_time 2021-05-26-9:17*/
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);
}
在全局配置文件配置Redis属性
测试代码
package net.zl.lesson08redis;import io.lettuce.core.GeoArgs;
import net.zl.lesson08redis.bean.Address;
import net.zl.lesson08redis.bean.Family;
import net.zl.lesson08redis.bean.Person;
import net.zl.lesson08redis.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(System.out::println);}@Testpublic void testFindByid(){Optional<Person> person = personRepository.findById("2");System.out.println(person);}@Testpublic void testFindPesonByLastName(){//降序-排序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);}}@Test void testFindBylastName(){List<Person> person = personRepository.findByLastName("张");person.forEach(System.out::println);}@Testpublic void testFindBylastNameandFirstName(){List<Person> person = personRepository.findPersonByLastNameAndFirstName("张","无忌");person.forEach(System.out::println);}@Test void testFindByAddress_City(){List<Person> people = personRepository.findByAddress_City("北京");people.forEach(System.out::println);}@Test void testFindByfamilyList_name(){List<Person> people = personRepository.findByFamilyList_Name("张丽丽");people.forEach(System.out::println);}
}
Spring Boot整合Redis-lesson8相关推荐
- Spring boot - 整合 Redis缓存(上)
一.配置Pom文件 在使用spring boot 2.0整合redis时遇到了好多问题,网上很多例子都是1.x版本的.故2.0没有折腾好所以将2.0降到了1.5.降级后由于thymeleaf版本也会从 ...
- Spring Boot基础学习笔记08:Spring Boot整合Redis
文章目录 零.学习目标 1.熟悉Redis相关概念 2.掌握使用Spring Boot整合Redis 一.Redis概述 1.Redis简介 2.Redis优点 (1)存取速度快 (2)数据类型丰富 ...
- 十一、Spring Boot整合Redis(一)
Spring Boot整合Redis 1. SpringBoot+单例Redis 1)引入依赖 <dependency> <groupId>org.springf ...
- Spring boot整合Redis(入门教程)
目录 源码分析 jedis VS lettuce 整合测试 导入依赖 配置连接 测试 存入字符串 存入对象 五大数据类型操作 自定义RedisConfig 存入对象 Redis工具类(常用API) 以 ...
- 大聪明教你学Java | Spring Boot 整合 Redis 实现访问量统计
前言 之前开发系统的时候客户提到了一个需求:需要统计某些页面的访问量,记得当时还纠结了一阵子,不知道怎么去实现这个功能,后来还是在大佬的带领下借助 Redis 实现了这个功能.今天又回想起了这件事,正 ...
- Spring Boot 整合Redis 包含Java操作Redis哨兵 作者:哇塞大嘴好帥(哇塞大嘴好帅)
Spring Boot 整合Redis 包含Java操作Redis哨兵 作者:哇塞大嘴好帥(哇塞大嘴好帅) 1. 配置环境 在SpringBoot2.0版本以后,原来使用的jedis被替换成为了let ...
- Spring boot整合Redis实现发布订阅(超详细)
Redis发布订阅 基础知识 相关命令 订阅者/等待接收消息 发布者/发送消息 订阅者/成功接收消息 常用命令汇总 原理 Spring boot整合redis 导入依赖 Redis配置 消息封装类(M ...
- 微服务Spring Boot 整合 Redis 实现 好友关注
文章目录 ⛅引言 一.Redis 实现好友关注 -- 关注与取消关注 二.Redis 实现好友关注 -- 共同关注功能 ⛵小结 ⛅引言 本博文参考 黑马 程序员B站 Redis课程系列 在点评项目中, ...
- 猿创征文 | 微服务 Spring Boot 整合Redis 实战开发解决高并发数据缓存
文章目录 一.什么是 缓存? ⛅为什么用缓存? ⚡如何使用缓存 二.实现一个商家缓存 ⌛环境搭建 ♨️核心源码 ✅测试接口 三.采用 微服务 Spring Boot 注解开启缓存 ✂️@CacheEn ...
- [由零开始]Spring boot 整合redis集群
Spring boot 整合redis集群 一.环境搭建 Redis集群环境搭建:https://blog.csdn.net/qq497811258/article/details/108124697 ...
最新文章
- Using Graphviz dot for ERDs, network diagrams and more
- 微信7.0.4内测版大更新!漂流瓶彻底成为历史
- IOS UINavigationController use
- Property or method xxxx is not defined on the instance but referenced during render.
- MFC项目实战(1)文件管理器--准备篇
- 9.MySQL数据查询SQL
- 科大奥锐实验报告霍尔效应_大学物理实验报告系列之霍尔效应
- ae可围绕帧拖动放大插件:Drag Zoom Pro for AE mac(兼容M1)
- mybatis执行的核心步骤
- 安装jdk和oracle要注意的知识点
- C#实现所有CRC8,CRC16,CRC32校验算法
- Default interface methods are only supported starting with Android N (--min-api 24):
- UVALive4987(dp+贪心)
- FileZilla下载及基本用法
- 非常值得收藏的书签栏,程序员学习与设计相关的网站(有附件下载)
- 各种数学平均数之间的关系
- 【09-JVM面试专题-实例化过程详细讲讲?对象的基本结构你知道吗?TLAB堆上内存分配是怎么样的?你了解这个TLAB吗?】
- 算法分析:时间和空间复杂度
- 计算机语言中call,PLC编程入门:子程序调用指令CALL、FROM指令、TO指令
- 高通平台启动log概述(PBL log、sbl1 log、kernel log)
热门文章
- 计算机论文 指导老师评语,毕业设计指导老师评语(精选5篇)
- CodeWarrior IDE烧写介绍
- 一个英文字母,一个中文各占多少字节
- Linux -shell 基础
- 转page类事件执行顺序
- roc曲线spss怎么做_统计第十三课:SPSS ROC曲线
- 手机版wps怎么制作折线图_头像制作软件手机版下载-头像制作免费软件带字体下载app...
- mysql数据库now_MySQL NOW() 函数
- windows常见电脑蓝屏的解决办法
- 进制转化(二进制,八进制,十进制,十六进制)详细教程