文章 2022-05-12 来自:开发者社区

一文彻底理解Redis序列化协议,你也可以编写Redis客户端(下)

基于RESP编写高性能解析器因为JDK原生提供的字节缓冲区java.nio.ByteBuffer存在不能自动扩容、需要切换读写模式等等问题,这里直接引入Netty并且使用Netty提供的ByteBuf进行RESP数据类型解析。编写本文的时候(2019-10-09)Netty的最新版本为4.1.42.Final。引入依赖:<dependency> <groupId>...

文章 2022-05-12 来自:开发者社区

一文彻底理解Redis序列化协议,你也可以编写Redis客户端(上)

前提最近学习Netty的时候想做一个基于Redis服务协议的编码解码模块,过程中顺便阅读了Redis服务序列化协议RESP,结合自己的理解对文档进行了翻译并且简单实现了RESP基于Java语言的解析。编写本文的使用使用的JDK版本为[8+]。RESP简介Redis客户端与Redis服务端基于一个称作RESP的协议进行通信,RESP全称为Redis Serialization Protocol,也....

文章 2022-05-05 来自:开发者社区

【小家Spring】Redis序列化、RedisTemplate序列化方式大解读,介绍Genericjackson2jsonredisserializer序列化器的坑(下)

解决方案既然你需要GenericJackson2JsonRedisSerializer它的通用性,那么你就得接受他只能处理Object类型。因此在使用的时候遇上这种情况,需要稍加注意了。我们可以先用Object接收,然后转成字符串再调用Long.valueOf()方法去间接实现。。。或者你在使用前手动指定序列化类型,但十分、十分不建议这么去做它处理List、Set、Long类型等都会有类似的问题....

文章 2022-05-05 来自:开发者社区

【小家Spring】Redis序列化、RedisTemplate序列化方式大解读,介绍Genericjackson2jsonredisserializer序列化器的坑(中)

Jackson2JsonRedisSerializer和GenericJackson2JsonRedisSerializer的异同Jackson2JsonRedisSerializer:为我们提供了两个构造方法,一个需要传入序列化对象Class,一个需要传入对象的JavaType: public Jackson2JsonRedisSerializer(Class<T> type) .....

【小家Spring】Redis序列化、RedisTemplate序列化方式大解读,介绍Genericjackson2jsonredisserializer序列化器的坑(中)
文章 2022-05-05 来自:开发者社区

【小家Spring】Redis序列化、RedisTemplate序列化方式大解读,介绍Genericjackson2jsonredisserializer序列化器的坑(上)

前言上一篇已经介绍了优雅的操作Redis:【小家Spring】Spring Boot中使用RedisTemplate优雅的操作Redis,并且解决RedisTemplate泛型注入的问题。本篇着重介绍一下几种常用的序列化方式最近在做一个项目,由于并发量大,大量使用到了RedisTemplate来操作Redis。但使用过程中,遇到了不少的坑,各种翻看源码来跟踪,也总结出了不少的经验。因此今天专门做....

【小家Spring】Redis序列化、RedisTemplate序列化方式大解读,介绍Genericjackson2jsonredisserializer序列化器的坑(上)
文章 2022-04-25 来自:开发者社区

redis 序列化对象问题

redis 序列化背景追根溯源RedisTemplateRedisSerializer替换默认RedisSerializer总结背景最近在使用redis的发布订阅模式时,订阅类接收到的是字符串,习惯性的用JSON将字符串转成对象,结果就是各种报错,刚开始想不通,通过redis可视化工具看到的明明是JSON,把结果复制出来也是能通过JSON测试的,为什么通过发布订阅获取到的结果就不能转成对象呢?追....

redis 序列化对象问题
文章 2022-01-09 来自:开发者社区

REDIS02_基于SpringBoot+Mybatis+Redis重写Redis的序列化的缓存实战(七)

⑤. 查询代码展示(这里补充一个在工作中实际遇到过的案例:公司某个卡卷活动,送保养给客户,设置的是一个月,最后当那个key消失的时候,我的邮箱就收到了3条报警邮件,我们分析了一下代码,出现了缓存击穿的现象,最后我们使用周志明老师的双端检索机制,使用重量级进行加锁,进行二次if判断,重新查询数据库,将热点代码进行重新设置进去) /** * 业务逻辑并没有写错,对于小厂中厂(QPS《=...

REDIS02_基于SpringBoot+Mybatis+Redis重写Redis的序列化的缓存实战(七)
文章 2022-01-09 来自:开发者社区

REDIS02_基于SpringBoot+Mybatis+Redis重写Redis的序列化的缓存实战(六)

③. 配置类RedisConfig、SwaggerConfig@Configuration public class RedisConfig { /** * @param lettuceConnectionFactory * @return * * redis序列化的工具配置类,下面这个请一定开启配置 * 127.0.0.1:6379&g...

REDIS02_基于SpringBoot+Mybatis+Redis重写Redis的序列化的缓存实战(六)
文章 2022-01-09 来自:开发者社区

REDIS02_基于SpringBoot+Mybatis+Redis重写Redis的序列化的缓存实战(五)

@NoArgsConstructor @AllArgsConstructor @Data @ApiModel(value = "用户信息") //数据传输对象 public class UserDTO implements Serializable { @ApiModelProperty(value = "用户ID") private Integer id; @ApiMo...

文章 2022-01-09 来自:开发者社区

REDIS02_基于SpringBoot+Mybatis+Redis重写Redis的序列化的缓存实战(四)

@Table(name = "t_user") public class User { @Id @GeneratedValue(generator = "JDBC") private Integer id; /** * 用户名 */ private String username; /** * 密码 */ ...

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。