创建项目时需要导入的包

在application.yml 配置文件中配置需要的

spring:datasource:url: jdbc:mysql://localhost:3306/数据库名?useSSL=false&serverTimezone=Asia/Shanghaiusername: 用户名password: 密码jpa:show-sql: truehibernate:ddl-auto: none
#redis 可以不配,默认就是locatihostredis:host: localhostport: 6379cache:type: redis

创建一个实体类

package com.lanou3g.redisdemo.entity;import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;/*** 创建人: 武奇* 创建事件: 2019/6/25*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class Emp {private Long uuid;private String username;private String email;}

在test 测试类中与redis交互

package com.lanou3g.redisdemo;import com.lanou3g.redisdemo.entity.Emp;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.data.redis.core.ZSetOperations;
import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.test.context.junit4.SpringRunner;import javax.annotation.Resource;
import java.util.Collections;@RunWith(SpringRunner.class)
@SpringBootTest
public class RedisDemoApplicationTests {// 如果没有Spring, 并且还想使用Java操作Redis// 那么需要引入Jedis框架@Resourceprivate RedisTemplate<String, Object> redisTemplate;@Testpublic void contextLoads() {// RedisTemplate里面的方法都是全局指令// 这些指令是与数据类型无关的// 比如: 删除key, 设置过期时间, 判断key是否存在等等this.redisTemplate.keys("school").forEach(System.out::println);//判断key是否存在Boolean boo = this.redisTemplate.hasKey("school");System.out.println(boo ? "key存在" : "key不存在");//删除Boolean b = this.redisTemplate.delete("school");System.out.println(b ? "删除成功" : "删除失败");}@Testpublic void testString() {// 操作String类型的数据
//        添加 ValueOperations<String, Object> ops = this.redisTemplate.opsForValue();ops.set("ppppp111888", "蓝鸥3G");
//        序列化转换RedisSerializer<?> keySerializer = this.redisTemplate.getKeySerializer();System.out.println(keySerializer.getClass());}@Testpublic void saveObj() {Emp emp = Emp.builder().uuid(1001L).username("zhangsan").email("zhang3@qq.com").build();
//存储对象时必须使这个对象序列化,我们要配置beanValueOperations<String, Object> ops = this.redisTemplate.opsForValue();ops.set("emp", emp);}@Testpublic void readObj() {ValueOperations<String, Object> ops = this.redisTemplate.opsForValue();Emp emp = (Emp) ops.get("emp");System.out.println(emp);}}

配置bean

package com.lanou3g.redisdemo.config;import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;import javax.annotation.PostConstruct;
import javax.annotation.Resource;@Configuration
@EnableCaching// 启用缓存
public class RedisConfig {//    配置key的序列化@Beanpublic RedisSerializer keySerializer() {return new StringRedisSerializer();}//    配置value的序列化@Beanpublic RedisSerializer valueSerializer() {// 当向Redis中存储一个对象时候,// 会把对象转换为json数据存储到Redis中return new GenericJackson2JsonRedisSerializer();}//@Beanpublic RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory) {RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();redisTemplate.setConnectionFactory(redisConnectionFactory);redisTemplate.setKeySerializer(keySerializer());redisTemplate.setHashKeySerializer(keySerializer());// 如果不配置JSON的序列化, 还想保存对象,// 那么前提是这个对象是可以被序列化的, 也就是说// 对应的类必须是实现Serializable接口的// 如果需要使用JSON的序列化, 被保存的对象,// 必须得有默认的构造方法, 否则对象能被存上, 但是读不出来redisTemplate.setValueSerializer(valueSerializer());redisTemplate.setHashValueSerializer(valueSerializer());return redisTemplate;}//实体类配置Bean  与配置文件配置没有任何差异/*<bean id="keySerializer" class="org.springframework.data.redis.serializer.StringRedisSerializer"/><bean id="redisTemplate" class="com.xxx.RedisTemplate"><property key="connectionFactory" ref="redisConnectionFactory"/><property key="keySerializer" ref="keySerializer" /><property key="hashKeySerializer" ref="keySerializer" /></bean>*/}

转载于:https://www.cnblogs.com/lxx-1843693653/p/11106654.html

spring boot 与redis 整合相关推荐

  1. spring boot shiro redis整合基于角色和权限的安全管理-Java编程

    一.概述 本博客主要讲解spring boot整合Apache的shiro框架,实现基于角色的安全访问控制或者基于权限的访问安全控制,其中还使用到分布式缓存redis进行用户认证信息的缓存,减少数据库 ...

  2. 轻轻松松学习SpringBoot2:第二十六篇: Spring Boot和Redis整合(完整版)

    前面我们讲了Spring Boot和Mongodb数据库整合,今天说一下和另一个nosql的整合:redis redis安装就不说了,例子用的是win10版的redis(去git上下载,然后解压,然后 ...

  3. spring boot使用Jedis整合Redis

    文章目录 spring boot使用jedis整合redis 总结 Spring Boot整合Redis有两种方式,分别是Jedis和RedisTemplate,那么它们二者有什么区别呢? 1.Jed ...

  4. Spring Boot 使用Redis发布订阅模式处理消息

    Spring Boot 使用Redis发布订阅模式 1. Redis发布订阅模式 2. Spring Boot中订阅消息 2.1 Redis监听器容器配置 2.2 创建通道监听器 2.3 测试订阅功能 ...

  5. 【第二十三篇】Spring Boot集成redis

    1.1 简介 REmote DIctionary Server(Redis)是一个由Salvatore Sanfilippo写的key-value存储系统. Redis是一个开源的使用ANSI C语言 ...

  6. Spring Boot与Redis的集成

    1.在Linux中安装Redis. 1.1.在线下载软件 1.2.安装软件 1.3.修改配置文件 1.4.启动Redis: 2.添加Redis起步缓存,在pom.xml中添加Spring Boot支持 ...

  7. Spring Boot 结合 Redis 缓存

    Redis官网: 中:http://www.redis.cn/ 外:https://redis.io/ redis下载和安装 Redis官方并没有提供Redis的Windows版本,这里使用微软提供的 ...

  8. Spring Boot 2.x整合Quartz

    宣传官网 xb.exrick.cn 在线Demo xboot.exrick.cn 开源版Github地址 github.com/Exrick/x-bo- 开发文档 www.kancloud.cn/ex ...

  9. Redis进阶-Jedis以及Spring Boot操作 Redis 5.x Cluster

    文章目录 Pre Jedis操作Redis Cluster 添加依赖 Code Spring Boot 操作Redis Cluster 引入 依赖 application.yml Code Pre R ...

最新文章

  1. mysql创建用户phpmyadmin_MySQL添加新用户和数据库(命令行模式和phpmyadmin)
  2. Codeforces Round #615 (Div. 3) A-F
  3. 使用js设置ul标签的显示或隐藏和超链接调用js文件的方法
  4. javascript学习系列(3):数组中的foreach方法
  5. 中国庭院刮板市场趋势报告、技术动态创新及市场预测
  6. ADO,ADO.NET,OLEDB,ODBC连接数据库的区别
  7. L2-014 列车调度(二分)
  8. 【身份证识别】基于matlab BP神经网络身份证号码识别【含Matlab源码 1344期】
  9. 线性代数及其应用笔记
  10. 赛程安排 单循环赛 matlab程序
  11. 给马斯克群发卫星算本账,星链计划跟5G有可比性么?
  12. PS图像特效算法——镜像渐隐
  13. linux可运行的steam游戏吗,Steam现在可以在Linux上玩仅Windows游戏
  14. Http协议之Referer
  15. 可能是这个夏天最有趣的100米了!| 谁在Reading Park
  16. S3C2440 音频解码芯片WM8976声卡驱动移植、测试以及madplay播放mp3文件(三十一)
  17. 微信支付回调页面html,微信JSAPI支付成功后获取回调数据
  18. 视觉语言如何准确的表达
  19. 5个有效学习前端的技巧
  20. centos8——换源

热门文章

  1. php实现注销功能,laravel 实现用户登录注销并限制功能
  2. java单位数_java – 优化代码以查找给定数量N的阶乘的单位数
  3. python实现简单的名字管理系统_python列表使用实现名字管理系统
  4. 当面试官问我————Java是值传递还是引用传递?
  5. LeetCode算法入门- Valid Parentheses -day11
  6. java学生签到系统视频教程_手把手教你做一个Java web学生信息、选课、签到考勤、成绩管理系统附带完整源码及视频开发教程...
  7. linux一级常用目录,小蚂蚁学习Linux(3)——Linux一级目录说明和常用命令解释...
  8. 详解最短路算法模板(dijkstra+floyd+spfa)
  9. 编写有效用例电子版_软件测试人员必须编写代码吗?
  10. 提示未检测到 oracle,Oracle RAC [INS-40406] 未检测到现有的 Oracle Grid Infrastructure 软件...