redisson如何序列化
Redisson 是一个在 Redis 的基础上实现的 Java 驻内存数据网格,相较于暴露底层操作的Jedis,Redisson提供了一系列的分布式的 Java 常用对象,还提供了许多分布式服务。 (推荐学习:Redis视频教程)
序列化
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; } }
更多Redis相关技术文章,请访问Redis入门教程栏目进行学习!
Atas ialah kandungan terperinci redisson如何序列化. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Senario penggunaan 1. Tempahan berjaya dibuat tetapi pembayaran tidak dibuat dalam masa 30 minit. Pembayaran tamat masa dan pesanan dibatalkan secara automatik 2. Pesanan telah ditandatangani dan tiada penilaian dilakukan selama 7 hari selepas ditandatangani. Jika pesanan tamat dan tidak dinilai, sistem lalai kepada penilaian positif 3. Pesanan dibuat dengan jayanya jika peniaga tidak menerima pesanan selama 5 minit, pesanan itu dibatalkan peringatan mesej teks dihantar... Untuk senario dengan kelewatan yang lama dan prestasi masa nyata yang rendah, kami boleh Gunakan penjadualan tugas untuk melaksanakan pemprosesan undian biasa. Contohnya: xxl-job Hari ini kita akan memilih

需要的Mavenorg.springframework.bootspring-boot-starter-data-redisio.lettucelettuce-coreredis.clientsjedisorg.springframework.sessionspring-session-data-redisorg.redissonredisson3.17.5application-redis.ymlspring:redis:host2:2104.host2:2106 6379kata laluan

Jika anda pernah menggunakan Redis sebelum ini, anda akan mendapat hasil dua kali ganda dengan separuh usaha dengan menggunakan Redisson menyediakan cara yang paling mudah dan mudah untuk menggunakan Redis. Tujuan Redisson adalah untuk mempromosikan pengasingan kebimbangan pengguna (Separation of Concern) daripada Redis, supaya pengguna boleh memberi lebih tumpuan kepada memproses logik perniagaan.

Redisson ialah penyelesaian caching berasaskan Redis untuk aplikasi Java. Ia menyediakan banyak ciri berguna yang menjadikan penggunaan Redis sebagai cache dalam aplikasi Java lebih mudah dan cekap. Fungsi caching yang disediakan oleh Redisson termasuk: 1. Pemetaan teragih (Peta): Redisson menyediakan beberapa API untuk mencipta peta teragih. Peta ini boleh mengandungi pasangan nilai kunci, entri cincang atau objek dan ia boleh menyokong perkongsian antara berbilang nod.

Redis dan Redisson ialah dua alat penting dalam storan data dalam memori moden dan storan data teragih. Redis ialah pangkalan data dalam memori sumber terbuka yang menyokong struktur data yang berbeza seperti rentetan, senarai, jadual cincang, set, dll. Redisson ialah rangka kerja perkhidmatan data teragih yang ditulis dalam bahasa Java, yang boleh memetakan objek Java dengan mudah ke storan teragih. Redis dan Redisson mempunyai beberapa senario penggunaan yang sama, seperti: Caching: Redis dan R

Dengan pembangunan berterusan teknologi Internet dan kepelbagaian senario aplikasi, aplikasi yang diedarkan telah menjadi standard untuk aplikasi Internet moden. Dalam aplikasi teragih, untuk menyelaraskan penyegerakan data dan kerjasama antara nod, mekanisme kunci teragih perlu digunakan. Redisson ialah rangka kerja kunci yang diedarkan berdasarkan teknologi Redis Ia menyediakan API yang mudah dan mudah digunakan untuk memudahkan pembangun Java menggunakan kunci yang diedarkan dalam pembangunan. Artikel ini terutamanya memperkenalkan penggunaan Redisson untuk pemprosesan kunci teragih dalam pembangunan JavaAPI.

Apabila aplikasi Internet terus meningkat dan bilangan pengguna terus meningkat, permintaan untuk sistem yang diedarkan semakin tinggi. Untuk memastikan kestabilan dan ketekalan data sistem yang diedarkan, penggunaan kunci adalah penting. Walau bagaimanapun, dalam sistem teragih, pelaksanaan kunci adalah sukar dan kompleks. Kaedah pelaksanaan kunci tradisional sukar untuk memenuhi keperluan konkurensi tinggi dan ketersediaan tinggi. Oleh itu, artikel ini akan memperkenalkan cara menggunakan Redisson untuk melaksanakan kunci API teragih untuk menyelesaikan masalah kunci dalam sistem teragih. Redisson ialah pelaksanaan berdasarkan Redis

Penyepaduan dan langkah berjaga-jaga redisson menyokong persekitaran redis, berdiri sendiri, kelompok, sentinel, awan, dsb. Di sini saya akan bercakap tentang perkara yang perlu anda perhatikan dalam mod kluster Redisson akan mengesan sama ada nod induk/hamba adalah normal apabila ia dimulakan, tidak ada masalah dengan 3 serpihan, 3 induk dan 3 hamba. Walau bagaimanapun, jika persekitaran ujian mempunyai 1 shard, 1 master dan 1 slave, atau Tiada satu pun daripada 3 master boleh dimulakan. Selain persekitaran, anda juga perlu memberi perhatian kepada keserasian dengan atau tanpa kata laluan. Menyuntik konfigurasi redisson secara manual Secara amnya, persekitaran pengeluaran mempunyai kata laluan. Jika terdapat kata laluan, disyorkan untuk menyuntik konfigurasi redisson secara manual tanpa menggunakan springboot untuk membantu anda mengintegrasikannya, kerana springboot mungkin tidak dapat mengecam kata laluan.
