返回顶部
首页 > 资讯 > 数据库 >redisson实现序列化的方法
  • 812
分享到

redisson实现序列化的方法

2024-04-02 19:04:59 812人浏览 薄情痞子
摘要

这篇文章运用简单易懂的例子给大家介绍Redisson实现序列化的方法,代码非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Redisson是架设在Redis基础上的一个Java驻内存数据网格(

这篇文章运用简单易懂的例子给大家介绍Redisson实现序列化的方法,代码非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

Redisson

是架设在Redis基础上的一个Java驻内存数据网格(In-Memory Data Grid)。

Redisson在基于NIONetty框架上,充分的利用了Redis键值数据库提供的一系列优势,在Java实用工具包中常用接口的基础上,为使用者提供了一系列具有分布式特性的常用工具类。使得原本作为协调单机多线程并发程序的工具包获得了协调分布式多机多线程并发系统的能力,大大降低了设计和研发大规模分布式系统的难度。同时结合各富特色的分布式服务,更进一步简化了分布式环境中程序相互之间的协作。

兼容 Redis 2.6+ and jdk 1.6+,使用Apache License 2.0授权协议,阅读 wiki 来获取更多使用信息

序列化

Redisson的对象编码类是用于将对象进行序列化和反序列化,以实现对该对象在Redis里的读取和存储。

由Redisson默认的编码器为JSONJacksonCodec,jsonJackson在序列化有双向引用的对象时,会出现无限循环异常。而fastjson在检查出双向引用后会自动用引用符$ref替换,终止循环。

在我的情况中,我序列化了一个service,这个service已被spring托管,而且和另一个service之间也相互注入了,用fastjson能 正常序列化到redis,而JsonJackson则抛出无限循环异常。

为了序列化后的内容可见,所以不用redission其他自带的二进制编码器,自行实现编码器:

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.ByteBufAllocator;
import io.netty.buffer.ByteBufInputStream;
import io.netty.buffer.ByteBufOutputStream;
import org.redisson.client.codec.BaseCodec;
import org.redisson.client.protocol.Decoder;
import org.redisson.client.protocol.Encoder;

import java.io.IOException;

public class FastjsonCodec extends BaseCodec {

 private final Encoder encoder = in -> {
 ByteBuf out = ByteBufAllocator.DEFAULT.buffer();
 try {
 ByteBufOutputStream os = new ByteBufOutputStream(out);
 JSON.writeJSONString(os, in,SerializerFeature.WriteClassName);
 return os.buffer();
 } catch (IOException e) {
 out.release();
 throw e;
 } catch (Exception e) {
 out.release();
 throw new IOException(e);
 }
 };

 private final Decoder<Object> decoder = (buf, state) ->
 JSON.parseObject(new ByteBufInputStream(buf), Object.class);

 @Override
 public Decoder<Object> getValueDecoder() {
 return decoder;
 }

 @Override
 public Encoder getValueEncoder() {
 return encoder;
 }
}

关于redisson实现序列化的方法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

您可能感兴趣的文档:

--结束END--

本文标题: redisson实现序列化的方法

本文链接: https://lsjlt.com/news/38325.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • redisson实现序列化的方法
    这篇文章运用简单易懂的例子给大家介绍redisson实现序列化的方法,代码非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Redisson是架设在Redis基础上的一个Java驻内存数据网格(...
    99+
    2024-04-02
  • redisson中怎么实现缓存序列化
    redisson中怎么实现缓存序列化,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。redisson缓存序列化几枚坑1、返回值为Map<T, K> 的...
    99+
    2023-06-20
  • java实现序列化的方法
    实现序列化:1)使用Serializable接口实现序列化首先我们定义一个对象类Userpublic class User implements Serializable { //序列化ID private static f...
    99+
    2014-12-28
    java 序列化
  • 实现JSON序列化和反序列化的方法在Golang中
    Golang中JSON序列化和反序列化的实现方式 JSON (JavaScript Object Notation) 是一种常用的数据交换格式,它以文本的形式表示结构化数据。在Golang中,我们可以使用内置...
    99+
    2024-01-29
    Golang 序列化 JSON 实现方式 反序列化
  • Go语言中实现对象的序列化与反序列化方法
    Golang中实现对象序列化和反序列化的方法,需要具体代码示例 序列化和反序列化是将对象转化为可存储或传输的格式,以及将存储或传输的格式转化为对象的过程。在Golang中,可以通过一些内置的库和方法来实现对象...
    99+
    2024-01-29
  • go序列化的实现方法有哪些
    Go语言中序列化的实现方法有以下几种: 使用标准库的encoding/json包进行JSON序列化和反序列化。 使用标准库的enc...
    99+
    2024-02-29
    go
  • 队列技术在PHP与MySQL中的消息序列化和反序列化的实现方法
    在Web开发中,队列技术被广泛应用于处理异步任务和消息传递,能够提高系统的性能和可扩展性。PHP作为一种流行的服务器端编程语言,与MySQL数据库结合使用,可以实现优秀的Web应用。本文将介绍队列技术在PHP与MySQL中的消息序列化和反序...
    99+
    2023-10-21
    队列技术 反序列化 消息序列化
  • SpringBoot结合Redis实现序列化的方法详解
    目录前言配置类配置 Jackson2JsonRedisSerializer 序列化策略配置  RedisTemplate配置缓存策略测试代码完整代码前言 最近在学...
    99+
    2024-04-02
  • C#实现对象的序列化和反序列化
    什么是序列化和反序列化: 将对象及其状态保存起来,通常是保存到文件中,叫序列化。将文件还原为对象,叫反序列化。 序列化和反序列化的接口和帮助类: 接口IFormatterobject...
    99+
    2022-11-13
    C# 序列化对象 反序列化对象
  • Java的序列化与反序列化怎么实现
    本篇内容介绍了“Java的序列化与反序列化怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Java对象的序列化Java平台允许我们在内...
    99+
    2023-07-04
  • C#实现XML序列化与反序列化
    目录一、使用 System.Xml.Serialization类1、定义元数据2、简单序列化与反序列化3、集合的序列化与反序列化4、在不能更改数据的情况下,可以用代码重载 XmlAt...
    99+
    2024-04-02
  • 初探Golang中的序列化和反序列化方法
    Golang序列化和反序列化的方法初探 序列化和反序列化是计算机科学中常用的概念,指的是将数据结构或对象转换为一种可在网络上传输或存储的格式,以便在需要时能够重新获得原始数据结构或对象。在Golang中,提供...
    99+
    2024-01-29
    Golang 序列化 反序列化
  • golang序列化和反序列化的方法是什么
    Go语言中序列化和反序列化可以通过将数据转换为字节流格式来实现,常见方法有“JSON序列化和反序列化”、“XML序列化和反序列化”、“gob序列化和反序列化”和“Protocol Buffers序列化和反序列化”四种:1、使用“json.M...
    99+
    2023-12-18
    golang反序列化 golang序列化 Golang go语言
  • Python使用protobuf序列化和反序列化的实现
    protobuf介绍 protobuf是一种二进制的序列化格式,相对于json来说体积更小,传输更快。 安装protobuf 安装protobuf的目的主要用来将proto文件编译成python、c、Java可调...
    99+
    2022-06-02
    Python 序列化和反序列化
  • 关于redisson缓存序列化的几枚大坑说明
    redisson缓存序列化几枚坑 1、返回值为Map<T, K> 的方法增加@Cacheable后,T和K被类型擦出了,为啥? redisson结合Spring使用时,会...
    99+
    2024-04-02
  • C#如何实现序列化和反序列化
    这篇文章给大家分享的是有关C#如何实现序列化和反序列化的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。.net下有一种技术叫做对象序列化,说得通俗一点,C#序列化就是把一个对象保存到一个文件或数据库字段中去,C#反...
    99+
    2023-06-17
  • Java序列化与反序列化怎么实现
    本篇内容主要讲解“Java序列化与反序列化怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java序列化与反序列化怎么实现”吧!序列化与反序列化概念序列化 (Serialization)是...
    99+
    2023-06-02
  • java序列化与反序列化的使用方法汇总
    一、概念        java对象序列化的意思就是将对象的状态转化成字节流,以后可以通过这些值再生成相同状态的对象。对象...
    99+
    2024-04-02
  • mysql实现自增序列的方法
    这篇文章主要为大家展示了“mysql实现自增序列的方法”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“mysql实现自增序列的方法”这篇文章吧。1.创建seque...
    99+
    2024-04-02
  • 模板类与模板函数序列化和反序列化的实现方式?
    模板类和模板函数的序列化和反序列化可以通过多种方式实现,包括使用二进制归档、自有序列化、函数指针和函数对象。使用二进制归档可将模板类直接写入/读取到文件,自有序列化则定义自定义序列化/反...
    99+
    2024-04-24
    模板函数 模板类 c++
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作