詳解Spring整合Redis的兩種方式

2022-09-27 07:03:09 字數 2437 閱讀 1164

目錄

在工作中,我們用到分布式快取的時候,第一選擇就是redis,今天介紹一下springboot如何整合redis的,分別使用jedis和spring-data-redis兩種方式。

org.springframework.boot

spring-boot-starter-web

org.projectlombok

lombok

true

redis.clients

jedis

com.alibabawww.cppcns.comupid>

fastjson

1.2.73

redis.host=localhost

redis.maxtotal=5

redis.maxidle=5

redis.testonborrow=true

#以下方式也可以,springboot同樣能將其解析注入到jedispoolconfig中

#redis.max-total=3

#redis.max-idle=3

#redis.test-on-borrow=true

/*** @author 公-眾-號:程式設計師阿牛

* 由於jedis例項本身不非執行緒安全的,因此我們用jedispool

*/@configuration

public class commonconfig

@bean(destroymethod = "close")

public jedispool jedispool(@value("$") string host)

}/**

* @author 公-眾-號:程式設計師阿牛

*/@restcontroller

public class jediscontroller

}執行結果如下:

我們可以自己包裝乙個redisclient,來簡化我們的操作

程式設計客棧ncy>

org.springframework.boot

spring-boot-starter-data-redis

在application.properties中增加配置

spring.redis.host=localhost

spring.redis.port=6379

/*** @author 公-眾-號:程式設計師阿牛

*/@restcontroller

public class rediscontroller

}是的,你只需要引入依賴、加入配置就可以使用redis了,不要高興的太早,這裡面會有一些坑

使用工具檢視我們剛才set的內容,發現key前面多了一串字元,value也是不可見的

原因使用springdataredis,預設情況下是使用org.springframework.data.redis.serializer.jdkserializationredisserializer這個類來做序列化

具體我們看一下redistemplate **如何實現的

/***在初始化的時候,預設的序列化類是jdkserializationredisserializer

*/public void afterpropertiesset()

...省略無關**

}如何解決

很簡單,自己定義redistemplate並指定序列化類即可

/*** @author 公-眾-號:程式設計師阿牛

*/@configuration

public class redisconfig

@bean

public redisserializer jackson2jsonredisserializer()

}/**

* @author 公-眾-號:程式設計師阿牛

*/@configuration

public class redisconfig

@bean

public redisserializer jackson2jsonredisserializer()

}檢視執行結果:

只需要改一下配置項即可

# 哨兵

spring.redis.sentinel.master=mymaster

spring.redis.sentinel.nodes=127.0.0.1:26379,127.0.0.1:26380,127.0.0.1:26381

#集群spring.redis.cluster.max-redirects=100

spring.redis.cluster.nodes=127.0.0.1:6379,127.0.0.1:6380,127.0.0.1:6381,127.0.0.1:6382,127.0.0.1:6383,127.0.0.1:6384

以上兩種方式都可以,但是還是建議你使用spring-data-redis,因為spring經過多年的發展,尤其是springboot的日漸成熟,已經為我們簡化了很多操作。

Spring整合Struts詳解

spring雖然也提供了自已的mvc元件,但一來spring的mvc元件過於繁瑣,二來是struts的使用者眾多,因此,很多專案還是選擇使用spring整合struts框架,而且spring可以無縫的整合strtus框架,二者結合成乙個更實際的j2ee開發平台 使用spring的web應用時,不用手...

spring整合mybatis詳解

在上篇螃蟹已經說明spring註解的最經典配置,接下來開始整合mybatis,這樣整個專案就相對完整了。有關本例項的原始碼可以到 spring mvc註解例項及說明文件 首先依舊是找到spring的主配置檔案 然後進行如下配置 這麼做的目的有兩個,乙個是專案啟動時會直接初始化qlsessionfac...

spring整合redis集群配置

pom.xml org.springframework.data spring data redis 1.7.4.release org.slf4j slf4j api 這裡為什麼要排除slf日誌?因為我的框架使用的是log4j,如果有slf,那麼log4j的日誌將不生效。所以要排除。因為sprin...