整合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相关推荐

  1. Spring boot - 整合 Redis缓存(上)

    一.配置Pom文件 在使用spring boot 2.0整合redis时遇到了好多问题,网上很多例子都是1.x版本的.故2.0没有折腾好所以将2.0降到了1.5.降级后由于thymeleaf版本也会从 ...

  2. Spring Boot基础学习笔记08:Spring Boot整合Redis

    文章目录 零.学习目标 1.熟悉Redis相关概念 2.掌握使用Spring Boot整合Redis 一.Redis概述 1.Redis简介 2.Redis优点 (1)存取速度快 (2)数据类型丰富 ...

  3. 十一、Spring Boot整合Redis(一)

    Spring Boot整合Redis    1. SpringBoot+单例Redis 1)引入依赖 <dependency>     <groupId>org.springf ...

  4. Spring boot整合Redis(入门教程)

    目录 源码分析 jedis VS lettuce 整合测试 导入依赖 配置连接 测试 存入字符串 存入对象 五大数据类型操作 自定义RedisConfig 存入对象 Redis工具类(常用API) 以 ...

  5. 大聪明教你学Java | Spring Boot 整合 Redis 实现访问量统计

    前言 之前开发系统的时候客户提到了一个需求:需要统计某些页面的访问量,记得当时还纠结了一阵子,不知道怎么去实现这个功能,后来还是在大佬的带领下借助 Redis 实现了这个功能.今天又回想起了这件事,正 ...

  6. Spring Boot 整合Redis 包含Java操作Redis哨兵 作者:哇塞大嘴好帥(哇塞大嘴好帅)

    Spring Boot 整合Redis 包含Java操作Redis哨兵 作者:哇塞大嘴好帥(哇塞大嘴好帅) 1. 配置环境 在SpringBoot2.0版本以后,原来使用的jedis被替换成为了let ...

  7. Spring boot整合Redis实现发布订阅(超详细)

    Redis发布订阅 基础知识 相关命令 订阅者/等待接收消息 发布者/发送消息 订阅者/成功接收消息 常用命令汇总 原理 Spring boot整合redis 导入依赖 Redis配置 消息封装类(M ...

  8. 微服务Spring Boot 整合 Redis 实现 好友关注

    文章目录 ⛅引言 一.Redis 实现好友关注 -- 关注与取消关注 二.Redis 实现好友关注 -- 共同关注功能 ⛵小结 ⛅引言 本博文参考 黑马 程序员B站 Redis课程系列 在点评项目中, ...

  9. 猿创征文 | 微服务 Spring Boot 整合Redis 实战开发解决高并发数据缓存

    文章目录 一.什么是 缓存? ⛅为什么用缓存? ⚡如何使用缓存 二.实现一个商家缓存 ⌛环境搭建 ♨️核心源码 ✅测试接口 三.采用 微服务 Spring Boot 注解开启缓存 ✂️@CacheEn ...

  10. [由零开始]Spring boot 整合redis集群

    Spring boot 整合redis集群 一.环境搭建 Redis集群环境搭建:https://blog.csdn.net/qq497811258/article/details/108124697 ...

最新文章

  1. Using Graphviz dot for ERDs, network diagrams and more
  2. 微信7.0.4内测版大更新!漂流瓶彻底成为历史
  3. IOS UINavigationController use
  4. Property or method xxxx is not defined on the instance but referenced during render.
  5. MFC项目实战(1)文件管理器--准备篇
  6. 9.MySQL数据查询SQL
  7. 科大奥锐实验报告霍尔效应_大学物理实验报告系列之霍尔效应
  8. ae可围绕帧拖动放大插件:Drag Zoom Pro for AE mac(兼容M1)
  9. mybatis执行的核心步骤
  10. 安装jdk和oracle要注意的知识点
  11. C#实现所有CRC8,CRC16,CRC32校验算法
  12. Default interface methods are only supported starting with Android N (--min-api 24):
  13. UVALive4987(dp+贪心)
  14. FileZilla下载及基本用法
  15. 非常值得收藏的书签栏,程序员学习与设计相关的网站(有附件下载)
  16. 各种数学平均数之间的关系
  17. 【09-JVM面试专题-实例化过程详细讲讲?对象的基本结构你知道吗?TLAB堆上内存分配是怎么样的?你了解这个TLAB吗?】
  18. 算法分析:时间和空间复杂度
  19. 计算机语言中call,PLC编程入门:子程序调用指令CALL、FROM指令、TO指令
  20. 高通平台启动log概述(PBL log、sbl1 log、kernel log)

热门文章

  1. 计算机论文 指导老师评语,毕业设计指导老师评语(精选5篇)
  2. CodeWarrior IDE烧写介绍
  3. 一个英文字母,一个中文各占多少字节
  4. Linux -shell 基础
  5. 转page类事件执行顺序
  6. roc曲线spss怎么做_统计第十三课:SPSS ROC曲线
  7. 手机版wps怎么制作折线图_头像制作软件手机版下载-头像制作免费软件带字体下载app...
  8. mysql数据库now_MySQL NOW() 函数
  9. windows常见电脑蓝屏的解决办法
  10. 进制转化(二进制,八进制,十进制,十六进制)详细教程