首頁 資料庫 Redis Redis序列化轉換類型報錯如何解決

Redis序列化轉換類型報錯如何解決

May 30, 2023 pm 08:26 PM
redis

Cannot convert value of type 'org.springframework.data.redis.core.convert.MappingRedisConverter' to required type 'org.springframework.data.redis.core.mapping.RedisMapContext': no matching editors or conversion strategy found

在setValue的序列化方式的時候報錯,原來是用的RedisSerializer.json()方法,但是報錯,

template.setConnectionFactory(factory);
        // key序列化方式
        template.setKeySerializer(RedisSerializer.string());
        // value序列化方式
        template.setValueSerializer(RedisSerializer.json());
        // hash key的序列化方式
        template.setHashKeySerializer(RedisSerializer.string());
        // hash value的序列化方式
        template.setHashValueSerializer(RedisSerializer.json());
登入後複製

改成如下即可解決:

template.setConnectionFactory(factory);
        // key序列化方式
        template.setKeySerializer(RedisSerializer.string());
        // value序列化方式
        template.setValueSerializer(new Jackson2JsonRedisSerializer<>(Object.class));
        // hash key的序列化方式
        template.setHashKeySerializer(RedisSerializer.string());
        // hash value的序列化方式
        template.setHashValueSerializer(new Jackson2JsonRedisSerializer<>(Object.class));
登入後複製

在Redis中,有多種序列化實作可供選擇。其中,Jackson2JsonRedisSerializer和RedisSerializer.json()都是Redis中的序列化實作。它們的差異如下:

Jackson2JsonRedisSerializer使用Jackson函式庫將Java物件序列化為JSON格式的字串,並將其儲存到Redis。它也能夠將讀取自Redis的JSON字串轉換為Java物件。因此,使用Jackson2JsonRedisSerializer可以方便地處理JSON格式的數據,並且對於複雜的Java物件可以進行較好的序列化和反序列化。要完全控制序列化過程,需要進行一定的配置,因為在序列化時可能會忽略Java物件中的一些欄位。

RedisSerializer.json()使用Redis的內建JSON序列化器,將Java物件序列化為JSON格式的字串,並將其儲存到Redis中。它也可用於將從Redis中取出的JSON字串反序列化為Java物件。與Jackson2JsonRedisSerializer相比,RedisSerializer.json()在序列化過程中會將所有Java物件中的欄位都序列化到Redis中,但在處理複雜Java物件時,可能需要進行一些額外的配置。

因此,選擇哪種序列化方式取決於使用場景和特定需求。如果需要處理複雜的Java對象,並且對序列化和反序列化的精細控制比較關鍵,那麼Jackson2JsonRedisSerializer是更好的選擇。而如果處理的資料較為簡單,或者只需要簡單地將Java物件轉換為JSON格式的字串進行存儲,那麼RedisSerializer.json()可能更適合。

以上是Redis序列化轉換類型報錯如何解決的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Windows11安裝10.0.22000.100跳出0x80242008錯誤解決方法 Windows11安裝10.0.22000.100跳出0x80242008錯誤解決方法 May 08, 2024 pm 03:50 PM

Windows11安裝10.0.22000.100跳出0x80242008錯誤解決方法

剖析 PHP 函數瓶頸,提升執行效率 剖析 PHP 函數瓶頸,提升執行效率 Apr 23, 2024 pm 03:42 PM

剖析 PHP 函數瓶頸,提升執行效率

redis是記憶體快取嗎 redis是記憶體快取嗎 Apr 20, 2024 am 05:26 AM

redis是記憶體快取嗎

Golang API快取策略與最佳化 Golang API快取策略與最佳化 May 07, 2024 pm 02:12 PM

Golang API快取策略與最佳化

redis是非關係型資料庫嗎 redis是非關係型資料庫嗎 Apr 20, 2024 am 05:36 AM

redis是非關係型資料庫嗎

PHP開發中的快取機制與應用實戰 PHP開發中的快取機制與應用實戰 May 09, 2024 pm 01:30 PM

PHP開發中的快取機制與應用實戰

erlang和golang性能哪個好? erlang和golang性能哪個好? Apr 21, 2024 am 03:24 AM

erlang和golang性能哪個好?

redis是nio嗎 redis是nio嗎 Apr 20, 2024 am 04:52 AM

redis是nio嗎

See all articles