一、在pom文件中引入redis


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

二、配置Redis地址等配置

# Redis数据库索引(默认为0)
spring.redis.database= 0
# Redis服务器地址
spring.redis.host= ip
# Redis服务器连接端口
spring.redis.port=6379
# Redis服务器连接密码(默认为空)
spring.redis.password= password
# 连接池最大连接数(使用负值表示没有限制)
spring.redis.pool.max-active=8
# 连接池最大阻塞等待时间(使用负值表示没有限制)
spring.redis.pool.max-wait=-1
# 连接池中的最大空闲连接
spring.redis.pool.max-idle=8
# 连接池中的最小空闲连接
spring.redis.pool.min-idle=0
# 连接超时时间(毫秒)
spring.redis.timeout=0

三、编写操作Redis的工具类

四、接下来要说的就是关于key值"乱码"问题

这次主要的问题是,在这过程中可以操作Redis数据库 ,但是在登陆服务器的时候用redis-cli查看key的时候找不到相对应的key,而是出现了以下的这种情况

那么在存key的时候为什么会出现这种"乱码"的情况呢?

其实这里的"乱码"并不是真的乱码,那是因为我们还缺少了一点配置,那就是对Redis存key或者value的时候,没有配置字符串序列化。没有配置的话是默认使用jdk本身的序列化的,点进去RedisTemplate里面去看,可以看到

因为spring操作redis是在jedis客户端基础上进行的,而jedis客户端与redis交互的时候协议中定义是用byte类型交互,看到spring-data-redis中RedisTemplate<K, V>在操作的时候k,v是泛型对象,而不是byte[]类型的,这样导致的一个问题就是,如果不对RedisTemplate进行设置,spring会默认采用defaultSerializer = new JdkSerializationRedisSerializer();这个方法来对key、value进行序列化操作,使用默认的jdk序列化。这样子存到Redis里面,在服务器上登陆redis-cli查看key的时候找不到我们存储的那个key,而是加了一堆乱码的key,所以在这里我简单的做了一下配置,将存储的key/value设置成string类型:

其实在这里应该先提前利用springboot的自动装配,先将这些东西配置好,这些配置在网上可以找到,springboot集成redis配置

@Configuration
@EnableAutoConfiguration
public class RedisConfig {@Beanpublic RedisTemplate<String, String> redisTemplate(RedisConnectionFactory factory) {StringRedisTemplate redisTemplate = new StringRedisTemplate(factory);Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);ObjectMapper om = new ObjectMapper();om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);jackson2JsonRedisSerializer.setObjectMapper(om);//设置完这个可以直接将对象以json格式存入redis中,但是取出来的时候要用JSON.parseArray(Json.toJsonString(object),Object.class)解析一下redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer);//调用后完成设置redisTemplate.afterPropertiesSet();return redisTemplate;}

其实不用配置这些,Redis也可以正常使用的,不过为了防止日后出现问题方便排查,还是花一点点时间将这些配置加上吧~

关于springboot集成redis及关于redis的Key 乱码问题相关推荐

  1. SpringBoot集成Docker下的Redis哨兵(一主两从一哨兵)

    目录 前言 一.Redis 配置 配置简介 redis.conf sentinel.conf 最终文件结构 启动 docker启动一主俩从 docker启动redis哨兵 二.SpringBoot配置 ...

  2. Windows下安装Mongodb SpringBoot集成MongoDB和Redis多数据源

    全文内容: Mongodb安装 说明:Mongodb和redis是开发中常用的中间件,Redis的安装使用比较简单就不写了,只说本地也就是Windows安装Mongodb. SpringBoot集成M ...

  3. redis 依赖_springboot|springboot集成redis缓存

    javaDEMO 本网站记录了最全的各种JavaDEMO ,保证下载,复制就是可用的,包括基础的, 集合的, spring的, Mybatis的等等各种,助力你从菜鸟到大牛,记得收藏哦~~https: ...

  4. SpringBoot集成Redis用法笔记

    今天给大家整理一下SpringBoot集成Redis用法笔记,希望对大家能有所帮助! 一.Redis优点介绍 1.速度快 不需要等待磁盘的IO,在内存之间进行的数据存储和查询,速度非常快.当然,缓存的 ...

  5. springboot集成redis使用redis作为session报错ClassNotFoundException类RememberMeServices

    springboot 集成redis使用redis作为缓存,会报错的问题. 错误信息: java.lang.IllegalStateException: Error processing condit ...

  6. SpringBoot集成Cache缓存(Redis缓存,RedisTemplate方式)

    1.说明 SpringBoot集成Redis缓存, 首先创建一个Spring Boot工程, 使用Maven向导方式创建:SpringBoot集成Maven工程 然后引入redis的spring bo ...

  7. SpringBoot集成Redis缓存

    SpringBoot集成Redis缓存 前言 本系列文章将简单的学习SpringCloud微服务相关知识,其实也是因为时间的原因,一直拖到现在,遂打算趁着假期,决定记录下来. 从天气预报微服务系统的单 ...

  8. springboot 集成redis key乱码\xac\xed\x00\x05t\x00\x0eHAOKE_HOT_WORD

    文章目录 场景 分析 解决 场景 springboot集成redis集群 检查key时发现key是二进制格式的 \xac\xed\x00\x05t\x00\x0eHAOKE_HOT_WORD 分析 R ...

  9. Springboot 集成 mybatis 开启二级缓存(redis)

    首先来了解下mybatis 缓存,mybatis缓存分为一级缓存和二级缓存.一级缓存是默认开启的,无需其他配置操作,二级缓存则需要手动设置开启. 一级缓存原理: Mybatis的一级缓存是指同一个Sq ...

最新文章

  1. 轻量级分布式 RPC 框架
  2. 领跑交互新时代 蓦然认知助力传统产业智能化升级
  3. oracle存过传参,oracle 存储过程 传参数,如果是希望传参值也被利用起来,存储过程里面虽有IN,但OUT必不可少。...
  4. java join()源码_Java Thread的join() 之刨根问底
  5. PHP 如何准确取得服务器地址IP[非代理]
  6. leetcode455. 分发饼干
  7. mysql 准则 杂谈
  8. Kubesploit:针对容器化环境的跨平台后渗透利用工具
  9. 用Matlab分享一个软件低通滤波算法
  10. 【深度学习】训练集、测试集和验证集
  11. arm-linux工具
  12. Appium连接夜神模拟器
  13. 数学专业参考书——学数学的必看
  14. 行业边缘丨中国电科发布“海雀”处理器;中科海微获千万融资;联想发布边缘服务器;风河加入CNCF云原生计算基金会成为银牌会员;...
  15. cogs2790. mk和tree解题报告
  16. 简历包装严重,作为面试官,我是如何甄别应聘者的包装程度
  17. linux系统日志报错kernel,Linux 系统日志 kernel: __ratelimit: xxx callbacks suppressed-Fun言...
  18. 免费ftp服务器,盘点三款好用的免费ftp服务器
  19. Scrapy1.0教程 - 目录汇总贴
  20. 初识hellow world

热门文章

  1. python定时器及数据库操作
  2. 湖北师范大学计算机应用基础,2019年湖北师范大学911计算机应用基础考研大纲...
  3. 中国计算机游戏竞赛,信任与欺骗的游戏:全球计算机游戏程序竞赛,诠释了《老子通释》...
  4. android平台安全支付服务(msp)应用开发接口,Android接入支付宝和微信支付的方法...
  5. script标签中的crossorigin属性
  6. 泄密Number的数据类型转换
  7. ES6快速入门——类与对象
  8. java 类型通配符_java中泛型之类型通配符(?)
  9. 重装系统无法安装在efi分区_001_关于选中的磁盘具有MBR分区表。在 EFI 系统上,Windows 只能安装到 GPT 磁盘。问题解决...
  10. 父子/父孙传参(Provide/inject方式)