spring 整合redis

1. 引用依赖

<!--Redis-->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

2.添加配置文件信息

server:port: 8603# DATABASE CONFIGdatasource:username: rootpassword: rooturl: jdbc:mysql://localhost:3306/moon?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&useSSL=false&serverTimezone=Asia/Shanghaidriver-class-name: com.mysql.cj.jdbc.Drivertype: com.alibaba.druid.pool.DruidDataSource# 初始化大小,最小,最大initialSize: 5minIdle: 5maxActive: 50#连接等待超时时间maxWait: 60000#配置隔多久进行一次检测(检测可以关闭的空闲连接)timeBetweenEvictionRunsMillis: 60000#配置连接在池中的最小生存时间minEvictableIdleTimeMillis: 300000dbcp:remove-abandoned: true#泄露的连接可以被删除的超时时间(秒),该值应设置为应用程序查询可能执行的最长时间remove-abandoned-timeout: 180testWhileIdle: truetestOnBorrow: falsetestOnReturn: falsepoolPreparedStatements: true#配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙filters: stat,wall,log4jmaxPoolPreparedStatementPerConnectionSize: 20useGlobalDataSourceStat: trueconnectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500#mybatis
mybatis-plus:mapper-locations: classpath:/mapper/*Mapper.xml#实体扫描,多个package用逗号或者分号分隔typeAliasesPackage: com.zjk.moon.common.entityglobal-config:# 数据库相关配置db-config:#主键类型  0:"数据库ID自增", 1:"用户输入ID",2:"全局唯一ID (数字类型唯一ID)", 3:"全局唯一ID UUID";id-type: UUID#字段策略 IGNORED:"忽略判断",NOT_NULL:"非 NULL 判断"),NOT_EMPTY:"非空判断"field-strategy: NOT_EMPTY#驼峰下划线转换column-underline: true#数据库大写下划线转换#capital-mode: true#逻辑删除配置logic-delete-value: 0logic-not-delete-value: 1db-type: mysql#刷新mapper 调试神器refresh: true# 原生配置configuration:map-underscore-to-camel-case: truecache-enabled: false#redisredis:host: 127.0.0.1 #redis的主机ipport: 6379#password: mogu2018  # 客户端没有设置密码,服务器中redis默认密码为 mogu2018
#redisredis:host: 127.0.0.1 #redis的主机ipport: 6379#password: mogu2018  # 客户端没有设置密码,服务器中redis默认密码为 mogu2018

这时就可以使用 org.springframework.data.redis.core.RedisTemplate; 包了

乱码问题解决

乱码问题描述

但是这时使用org.springframework.data.redis.core.RedisTemplate 包set key 时,会出现下图中的乱码错误。

乱码错误提示:can not load key value key was removed or redis-server went away

解决方法

这时可以配置redis 配置文件,随便在一个目录上加这个java 文件都行。


import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.PropertyAccessor;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.cache.CacheManager;
import org.springframework.cache.annotation.CachingConfigurerSupport;
import org.springframework.cache.interceptor.KeyGenerator;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.cache.RedisCacheManager;
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.serializer.Jackson2JsonRedisSerializer;@Configuration
public class RedisConfig extends CachingConfigurerSupport {@Beanpublic KeyGenerator keyGenerator() {return new KeyGenerator() {@Overridepublic Object generate(Object target, java.lang.reflect.Method method, Object... params) {// TODO Auto-generated method stubStringBuilder sb = new StringBuilder();sb.append(target.getClass().getName());sb.append(method.getName());for (Object obj : params) {sb.append(obj.toString());}return sb.toString();}};}@SuppressWarnings("rawtypes")
//    @Bean
//    public CacheManager cacheManager(RedisTemplate redisTemplate) {
//        RedisCacheManager rcm = new RedisCacheManager(redisTemplate);
//        //设置缓存过期时间
//        rcm.setDefaultExpiration(60*8);//秒
//        return rcm;
//    }@Beanpublic CacheManager cacheManager(RedisConnectionFactory factory) {RedisCacheManager cacheManager = RedisCacheManager.create(factory);return cacheManager;}@Beanpublic RedisTemplate<String, String> redisTemplate(RedisConnectionFactory factory) {StringRedisTemplate template = 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);template.setValueSerializer(jackson2JsonRedisSerializer);template.afterPropertiesSet();return template;}}

can not load key value key was removed or redis-server went away 关于spring 整合redis 以及保存到redis相关推荐

  1. pandas对象保存到mysql出错提示“BLOB/TEXT column used in key specification without a key length”解决办法

    问题 将DataFrame数据保存到mysql中时,出现错误提示: BLOB/TEXT column used in key specification without a key length 原因 ...

  2. python 学习笔记 - for循环: 字典遍历, 分别打印key, value, key:value

    #遍历字典, 分别打印key, value, key:value emp = {'name':'Tom', 'age':20, 'salary' : 8800.00}for k in emp.keys ...

  3. 出圈问题(java)-----n个人围成一圈,数到key或者key的倍数,出圈,问剩下的最后一个人原来的位置是多少?

    出圈问题---n个人围成一圈,数到key或者key的倍数,出圈,问剩下的最后一个人原来的位置是多少? java版 1.n个人围成一圈,说明它是重复循环的,头就是尾. 2.每次数key或者key的倍数, ...

  4. candidate key, primary key, superkey的区别

    理解前觉得很复杂 理解后觉得很简单 简单的东西简单记录 他们的共同点是:都能确定一个relation里每个tuple的唯一性 关系: superkey包括candidate key, candidat ...

  5. #{key}和${key} 取值的区别

    mybatis中 #{key}和${key} 取值的区别 mapper映射文件 <select id="selectUser" resultType="com.rp ...

  6. 解决 There are no resources that can be added or removed from the server

    网上下载了一个项目,在eclipse中部署时,加载项目到tomcat中项目名称无法显示,报出There are no resources that can be added or removed fr ...

  7. *** is required and cannot be removed from the server

    解决eclipse中无法删除Tomcat服务器中的项目,报maven is required and cannot be removed from the server错误情况 右键项目,选择Prop ...

  8. CHIL-ORACLE-主外键约束(primary key / foreign key)

    主键约束 要求主键列数据唯一,并且不允许为空 外键约束 用于量表建立关系,需要指定引用朱彪的那列(主表必须是主键)1.主键约束 ( primary key )--例如1:create table te ...

  9. 微信支付 商户Key 支付Key API密钥 的获取

    读了微信支付的开发文档,感觉是不同阶段,不同的同学写的,有些专业名词比较混乱,甚至还会有错别字,以及接口更新了,而文档不更新的情况. 使用微信支付,必须要用到 api密钥进行签名 其中 ,商户Key ...

最新文章

  1. 10月21日!API 大赛决赛暨移动云开发者论坛邀您见证数字创新的力量
  2. 机器学习新手们 我这有本秘笈要不要?
  3. 【西交ACM】298 第N大的数
  4. 使用js实现时钟效果
  5. 国外AI界牛人主页 及资源链接
  6. 人工智能大咖齐聚北京,创新大讲堂9月盛势来袭
  7. NSIS UI 美化类插件分享
  8. 2021年中国一次性医用传感器市场趋势报告、技术动态创新及2027年市场预测
  9. 从入门到入土:基于Python采用TCP协议实现通信功能的程序
  10. 声智科技完成B轮2亿元融资,AI方案遍布百度小米华为阿里产品
  11. OpenCV medianBlur、GaussianBlur和bilateralFilter (中值滤波、高斯滤波、双边滤波)
  12. Leetcode 1222.可以攻击国王的皇后
  13. 数字电路与逻辑设计——组合逻辑篇
  14. 云运维拓扑图_云平台网络拓扑图
  15. Andriod SDK安装及配置
  16. CCF-CSP 201809-2买菜 满分题解
  17. 港珠澳大桥介绍网站设计【期末大作业】源码
  18. exercise11
  19. 【hadoop】MultipleOutputFormat和MultipleOutputs
  20. 【learning】微信跳一跳辅助c++详解 轻松上万 【下】

热门文章

  1. 全国计算机一级考点wps,抓考点:2018计算机一级WPS office考试大纲
  2. 医院自助机和分诊那个php,一种医院分诊用自助查询分诊机的制作方法
  3. iOS 仿百度外卖,饿了么-点餐效果(加入购物车效果)
  4. 数字化转型导师坚鹏:企业数字化转型培训如何高效推进评价与改进
  5. WIN10右键菜单长时间转圈的解决办法之二
  6. 全国计算机考试准考证word
  7. 从流量之争到科技之争 易车双十一敲响汽车交易冲锋号
  8. DNN(深度神经网络)
  9. android 摇一摇+震动+声音效果
  10. 瀚高股份吕新杰:创新开源双驱动,躬耕国产数据库