【Spring Boot实战与进阶】Redis配置Fastjson进行序列化和反序列化(1)

面试题总结

其它面试题(springboot、mybatis、并发、java中高级面试总结等)

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 7、查看Redis的数据

FastJson是阿里开源的一个高性能的JSON框架,FastJson数据处理速度快,无论序列化(把JavaBean对象转化成Json格式的字符串)和反序列化(把JSON格式的字符串转化为Java Bean对象),都是当之无愧的fast;功能强大(支持普通JDK类,包括javaBean, Collection, Date 或者enum);零依赖(没有依赖其他的任何类库)。

1、自定义序列化类

/**

  • 自定义序列化类

  • @param

*/

public class FastJsonRedisSerializer implements RedisSerializer {

public static final Charset DEFAULT_CHARSET = Charset.forName(“UTF-8”);

private Class clazz;

public FastJsonRedisSerializer(Class clazz) {

super();

this.clazz = clazz;

}

@Override

public byte[] serialize(T t) throws SerializationException {

if (null == t) {

return new byte[0];

}

return JSON.toJSONString(t, SerializerFeature.WriteClassName).getBytes(DEFAULT_CHARSET);

}

@Override

public T deserialize(byte[] bytes) throws SerializationException {

if (null == bytes || bytes.length <= 0) {

return null;

}

String str = new String(bytes, DEFAULT_CHARSET);

return (T) JSON.parseObject(str, clazz);

}

}

2、Redis配置类

@Configuration

public class RedisConfiguration {

@Bean

public RedisTemplate<Object, Object> redisTemplate(

RedisConnectionFactory redisConnectionFactory) {

RedisTemplate<Object, Object> template = new RedisTemplate<>();

//使用fastjson序列化

FastJsonRedisSerializer fastJsonRedisSerializer = new FastJsonRedisSerializer(Object.class);

// value值的序列化采用fastJsonRedisSerializer

template.setValueSerializer(fastJsonRedisSerializer);

template.setHashValueSerializer(fastJsonRedisSerializer);

// key的序列化采用StringRedisSerializer

template.setKeySerializer(new StringRedisSerializer());

template.setHashKeySerializer(new StringRedisSerializer());

template.setConnectionFactory(redisConnectionFactory);

return template;

}

}

3、Java Bean

@Data

public class Student {

private Integer studentId;

private String studentName;

}

4、引入依赖

pom.xml引入redis和fastjson的依赖,application.yml配置文件别忘了配置Redis的地址。

org.springframework.boot

总结

这份面试题几乎包含了他在一年内遇到的所有面试题以及答案,甚至包括面试中的细节对话以及语录,可谓是细节到极致,甚至简历优化和怎么投简历更容易得到面试机会也包括在内!也包括教你怎么去获得一些大厂,比如阿里,腾讯的内推名额!

某位名人说过成功是靠99%的汗水和1%的机遇得到的,而你想获得那1%的机遇你首先就得付出99%的汗水!你只有朝着你的目标一步一步坚持不懈的走下去你才能有机会获得成功!

成功只会留给那些有准备的人!

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)收录**

需要这份系统化的资料的朋友,可以点击这里获取

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用 Fastjson 序列 Redis 的数据,需要在 Redis配置文件中设置序列器的类型为 FastjsonSerializer。具体步骤如下: 1. 在 Redis配置文件 redis.conf 中,找到 `# requirepass foobared` 这一行,并将其前面的注释符号 # 去掉,设置 Redis 的密码为 foobared。这样可以提高 Redis 的安全性,避免被未经授权的用户访问。 2. 在 Redis配置文件 redis.conf 中,找到 `# bind 127.0.0.1` 这一行,并将其前面的注释符号 # 去掉,设置 Redis 只能被本地访问。这样可以避免 Redis 被未经授权的用户远程访问。 3. 在 Redis配置文件 redis.conf 中,找到 `# maxmemory <bytes>` 这一行,并将其前面的注释符号 # 去掉,设置 Redis 最大使用内存的限制。例如,设置为 1GB 的命令如下: ``` maxmemory 1gb ``` 4. 在 Redis配置文件 redis.conf 中,找到 `# appendonly no` 这一行,并将其前面的注释符号 # 去掉,启用 Redis 的 AOF (Append Only File) 持久功能。这样可以确保 Redis 在宕机或异常退出时,数据不会丢失。 5. 在 Redis配置文件 redis.conf 中,找到 `# requirepass foobared` 这一行下面,添加以下配置: ``` # 开启 Fastjson 序列器 # Redis 默认使用的是 JdkSerializationRedisSerializer 序列器,但它的效率较低,不适用于大规模数据存储 # Fastjson 是一个高性能的 Java 序列库,它能够快速地将 Java 对象转换为 JSON 字符串,并且序列也很快 # FastjsonSerializer 是 Redisson 提供的一个 Fastjson 序列器 # 需要添加 Redisson 的依赖 # https://github.com/redisson/redisson/wiki/Redisson%E9%85%8D%E7%BD%AE#15-%E5%BA%8F%E5%88%97%E5%8C%96 # fastjson序列比较快,但是序列会有一定的风险,需要根据自己的业务场景进行评估 # 详细说明可以参考 http://docs.redisson.org/en/latest/codec/FastjsonCodec/ codec: org.redisson.codec.FastjsonCodec ``` 6. 保存并关闭 Redis配置文件 redis.conf。 7. 重启 Redis 服务,让配置文件的修改生效。可以使用以下命令重启 Redis: ``` redis-cli shutdown redis-server /path/to/redis.conf ``` 其中,`/path/to/redis.conf` 表示 Redis 配置文件的路径。如果 Redis配置文件在默认路径 `/etc/redis/redis.conf` 下,可以直接使用以下命令重启 Redis: ``` redis-cli shutdown redis-server ``` 重启后,就可以使用 Fastjson 序列 Redis 的数据了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值