1. 程式人生 > >Springboot 2.x Redis Session 自定義key value序列化方式

Springboot 2.x Redis Session 自定義key value序列化方式

Redis習慣使用 Json格式來儲存了,spring-session 2.0 開始網上找的方法已經都不適用了,文件裡也沒說清楚,通過分析原始碼最後解決。

這裡簡單介紹一下我的解決方法

1、pom依賴

<dependency>
    <groupId>org.springframework.session</groupId>
    <artifactId>spring-session-data-redis</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-pool2</artifactId>
</dependency>

2、配置yml

server:
  port: 8080
  servlet:
    session:
      timeout: 1d
spring:
  session:
    store-type: redis
    redis:
      flush-mode: on_save
      namespace: session
  redis:
      port: 6379
      host: ip
      password: pwd
      database: 1
      timeout: 1s
      lettuce:
        pool:
          max-active: 8
          max-idle: 8
          min-idle: 0
          max-wait: -1ms

3、自定義SessionConfiguration 類

import lombok.extern.log4j.Log4j2;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.RedisSerializer;

@Log4j2
@Configuration
public class SessionConfiguration {

    @Bean("springSessionDefaultRedisSerializer")
    public RedisSerializer<Object> defaultRedisSerializer(){
        log.debug("自定義Redis Session序列化載入成功");
        return valueSerializer();
    }

    private RedisSerializer<Object> valueSerializer() {
        return new GenericJackson2JsonRedisSerializer();
    }

}

相關推薦

Springboot 2.x Redis Session 定義key value序列方式

Redis習慣使用 Json格式來儲存了,spring-session 2.0 開始網上找的方法已經都不適用了,文件裡也沒說清楚,通過分析原始碼最後解決。 這裡簡單介紹一下我的解決方法 1、pom依賴 <dependency> <group

Springboot 2.x Redis Cache 定義key value序列方式

Redis習慣使用 Json格式來儲存了,spring-data-redis 2.0 開始網上找的方法已經都不適用了,文件裡也沒說清楚,通過分析原始碼最後解決。 這裡簡單介紹一下我的解決方法 1、pom依賴 <dependency> <gr

spring-redis-session 定義 key 和過期時間

對於分散式應用來說,最開始遇到的問題就是 session 的儲存了,解決方案大致有如下幾種 使用 spring-session 它可以把 session 儲存到你想儲存的位置,如 redis,mysql 等 使用 JWTs ,它使用演算法來驗證 token 的合法性,是否過期,並且 token 無法被偽造,

springboot 2.X+redis+springcache 之 資料快取

Redis簡介 Redis支援資料的持久化,可以將記憶體中的資料儲存在磁碟中,重啟的時候可以再次載入進行使用。 Redis不僅僅支援簡單的key-value型別的資料,同時還提供list,set,zset,hash等資料結構的儲存。 Redis支援資料的備份,

Spring Boot 2.X(十):定義註冊 Servlet、Filter、Listener

前言 在 Spring Boot 中已經移除了 web.xml 檔案,如果需要註冊新增 Servlet、Filter、Listener 為 Spring Bean,在 Spring Boot 中有兩種方式: 使用 Servlet 3.0 API 的註解 @WebServlet、@WebFilter、@Lis

SpringBoot整合rediskey,value序列的相關問題

https://www.cnblogs.com/liuchuanfeng/p/7009027.html   重要程式碼 RedisSerializer redisSerializer = new StringRedisSerializer(); redisTe

mapreduce 定義key/value 輸出分隔符

mapreduce 預設情況下 key/value 分隔符為:“\t” 測試的輸出如下: 我們可以在程式碼中進行設定來自定義 key/value 輸出分隔符:在程式碼中新增如下一行程式碼: con

springBootspringBoot整合rediskey,value序列的相關問題

使用的是maven工程 springBoot整合redis預設使用的是註解,在官方文件中只需要2步; 1、在pom檔案中引入即可 <dependency> <groupId>org.springframework.boot<

FastJson定義複雜物件序列

總結:  SerializeFilter是通過程式設計擴充套件的方式定製序列化。fastjson支援6種SerializeFilter,用於不同場景的定製序列化。  PropertyPreFilter 根據PropertyName判斷是否序列化  Pr

TreeSet定義Comparator後序列與反序列問題

碰到一個比較鬱悶的問題,在TreeSet中定義了一個Comparator之後出現了序列化物件失敗的問題。有興趣可以嘗試一下。 問題: If java.util.TreeMap customer created by constructor with java.util.C

iOS 之JSON序列的注意(陣列,字典,定義物件的序列

注意:要序列化的物件:最外層的物件型別必須是NSArray或NSDictionary;字典的key必須是NSSting型別;數字不能是NAN或無限大;所有的物件型別必須時NString,NSNumber,NSAray,NSDIctionary,NSNull;- (void)v

Json反序列之ObjectMapper(定義實現反序列方法)

     對於伺服器端開發人員而言,呼叫第三方介面獲取資料,將其“代理”轉化並返給客戶端幾乎是家常便飯的事兒。    一般情況下,第三方介面返回的資料型別是json格式,而伺服器開發人員則需將json格式的資料轉換成物件,繼而對其進行處理並封裝,以返回給客戶端。  

python---redis實現定義session

ssm clas ges enc set hash blog dig 註意 SESSION_EXPIRE = 60 SESSION_TYPE = ‘Redis‘ pool = redis.ConnectionPool(host="localhost",port=6379)

zabbix 2.4 定義key實例

zabbix 自定義key 目標:監控linux server中nginx的連接數,established狀態 一、在agent端,自定義監控腳本 vim checknginx_established.sh #!/bin/bash re

springboot 2.x版本Redis設定JedisConnectionFactory.setHostName()過時

原文轉載:https://blog.csdn.net/Soda_lw/article/details/82661705 一、今天新建一個專案用以前的方式整合redis時,發現JedisConnectionFactory.sethostName等方法提示過時,並且RedisCacheManager

springboot 2.x 快取功能,基於redis封裝快取

spring boot整合redis進行資料快取功能         @Cacheable 表明Spring在呼叫方法之前,首先應該在快取中查詢方法的返回值。如果這個值能夠找到,就會返回快取的值。否則的話,這個方法就

SpringBoot 2.x 使用Redis作為快取 設定有效時間

redis 配置 redis: database: 0 host: localhost port: 6379 password: jedis: pool: max-active: 8 max-wait:

基於SpringBoot 2.X整合Redis

基於SpringBoot 2.X整合Redis 說明:本文旨在整理SpringBoot 2.X整合Redis基礎功能,如有問題請指出 在pom.xml檔案中引入Redis的依賴 <!-- Redis -->

spring-boot整合redis作為快取(3)——定義key

        分幾篇文章總結spring-boot與Redis的整合         4、自定義key         5、spring-boot引入Redis         在上一篇文章中說道key是用來分辨同一個快取中的快取資料的。key是可以自己制定的,也

SpringBoot 2.x版本以上整合redis方式

1.引入pom檔案2.編輯配置檔案上面紅方框中的屬性沒有特殊情況就都加上,下面的xx.jedis.pool.xx4個屬性可以不用填寫,有預設,在RedisProperties類中有3.直接在專案中進行注入使用,不用寫配置類在SpringBoot2.0之後,spring容器是自