Redis自定义fastJson Serializer】的更多相关文章

public class FastJsonRedisSerializer<T> implements RedisSerializer<T> { public static final Charset DEFAULT_CHARSET = Charset.forName("UTF-8"); private Class<T> clazz; public FastJsonRedisSerializer(Class<T> clazz) { supe…
WeihanLi.Redis自定义序列化及压缩方式 Intro WeihanLi.Redis 是基于 StackExchange.Redis 的扩展,提供了一些常用的业务组件和对泛型的更好支持,默认使用 JSON.Net 为基础的 JSON序列化,使用 GZip 进行数据压缩. 从 1.3.0 版本开始支持自定义序列化和压缩方式,下面介绍一下如何实现自定义序列化以及压缩.基本用法可以查看项目说明或这篇介绍 自定义序列化 自定义序列化只需要实现自己的 IDataSerializer 就可以了,用自…
Redis开发者在开发过程中没有使用系统的原始字符串,而是使用了自定义的sds字符串,这个模块的编写是在文件:sds.h和sds.c文件中.Redis自定义的这个字符串好像也不是很复杂,远不像nginx自定义的一样复杂,但也存在一些问题. 在.h文件中定义了一个新的类型和一个结构体分别是: typedef char *sds;//定义了sds的字符串类型,使用的仍是字符串指针,只是多了个头部,具体定义见sdshdr. //动态字符串,数组的长度是可变的. struct sdshdr { unsi…
今天线上遇到一个问题,从hbase里读取出来的数据在转换json后输出时出现异常: java.lang.ArrayIndexOutOfBoundsException: 160 at com.alibaba.fastjson.serializer.SerializeWriter.writeStringWithDoubleQuote(SerializeWriter.java:868) at com.alibaba.fastjson.serializer.SerializeWriter.writeSt…
承接上篇:fastjson反序列化LocalDateTime失败的问题java.time.format.DateTimeParseException: Text '2019-05-24 13:52:11' could not be parsed at index 10 之前在线上用的版本是fastjson-1.2.7.jar 一切正常,更换以后时间解析看似一切正常. 因为在系统中设计json反序列化的地方比较多,刚刚放到生产环境,app那边的接口报错了 java.lang.ClassFormat…
最近开发了一个功能,需要发送短信验证码鉴权,考虑到短信服务需要收费,因此对此接口做了防刷处理,实现方式主要是Redis+自定义注解(需要导入Redis的相关依赖,完成Redis的相关配置,gs代码,这里不做展示). 首先定义注解AccessFrequencyLimiter,注解包含四个参数,限制一段时间内同一IP地址最多访问接口次数,以及报错信息和报错之后再次可以访问接口的时间间隔. @Target(ElementType.METHOD) @Retention(RetentionPolicy.R…
在使用spring-data-redis,默认情况下是使用org.springframework.data.redis.serializer.JdkSerializationRedisSerializer这个类来做序列化 我们使用jackson方式: Jackson redis序列化是spring中自带的 @Bean(name="redisTemplate") public RedisTemplate<String, Object> redisTemplate() { Ja…
通常,fastjson在序列化及反序列化枚举时,一般以下几种策略: 1).根据枚举的name值序列化及反序列化(默认) 2).根据枚举的ordinal序列化及反序列化 3).根据枚举的toString方法序列化,但是反序列仍采取默认的策略 这显然对我们的业务处理不够灵活,考虑以下一种情况: 有一个文章类,它有标题,内容等属性,其中有一个属性是枚举类,表示文章是否通过审核. 如下: public class Article {private String title; private String…
第一次做这种javaweb的项目,难免还是要犯很多错误. 大概也知道,redis常常被用来做应用和mysql之间的缓存.模型大概是这样子的. 为了让redis能够缓存mysql数据库中的数据,我写了很多这样类似的代码: 原来的查询商品 public Product selectProductById(int id) { Product product = productMapper.selectByPrimaryKey(id); if (product != null) { String det…
spring中自动加上 SimpleKey [] 解决方案 一.自定义后缀名 1.定义类实现KeyGenerator接口 MyKeyGenerator package com.wbg.springRedis.service.impl; import org.springframework.cache.interceptor.KeyGenerator; import org.springframework.stereotype.Component; import java.lang.reflect…