SpringBoot 集成 Memcached的方法示例
Memcached 介紹
Memcached 是一個高性能的分布式內(nèi)存對象緩存系統(tǒng),用于動態(tài)Web應(yīng)用以減輕數(shù)據(jù)庫負載。它通過在內(nèi)存中緩存數(shù)據(jù)和對象來減少讀取數(shù)據(jù)庫的次數(shù),從而提高動態(tài)、數(shù)據(jù)庫驅(qū)動網(wǎng)站的速度。Memcached基于一個存儲鍵/值對的hashmap。其守護進程(daemon )是用C寫的,但是客戶端可以用任何語言來編寫,并通過memcached協(xié)議與守護進程通信。
因為 Spring Boot 沒有針對 Memcached 提供對應(yīng)的組建包,因此需要我們自己來集成。官方推出的 Java 客戶端 Spymemcached 是一個比較好的選擇之一。
Spymemcached 介紹
Spymemcached 最早由 Dustin Sallings 開發(fā),Dustin 后來和別人一起創(chuàng)辦了 Couchbase (原NorthScale),職位為首席架構(gòu)師。2014 加入 Google。
Spymemcached 是一個采用 Java 開發(fā)的異步、單線程的 Memcached 客戶端, 使用 NIO 實現(xiàn)。Spymemcached 是 Memcached 的一個流行的 Java client 庫,性能表現(xiàn)出色,廣泛應(yīng)用于 Java + Memcached 項目中。
依賴配置
添加依賴
pomx 包中添加 spymemcached 的引用
<dependency> <groupId>net.spy</groupId> <artifactId>spymemcached</artifactId> <version>2.12.2</version> </dependency>
添加配置
memcache.ip=192.168.0.161 memcache.port=11211
分別配置 memcache 的 Ip 地址和 端口。
設(shè)置配置對象
創(chuàng)建 MemcacheSource 接收配置信息
@Component
@ConfigurationProperties(prefix = "memcache")
public class MemcacheSource {
private String ip;
private int port;
public String getIp() {
return ip;
}
public void setIp(String ip) {
this.ip = ip;
}
public int getPort() {
return port;
}
public void setPort(int port) {
this.port = port;
}
}
@ConfigurationProperties(prefix = "memcache") 的意思會以 memcache.* 為開通將對應(yīng)的配置文件加載到屬性中。
啟動初始化 MemcachedClient
我們使用上一節(jié)的內(nèi)容Spring Boot 2 (七):Spring Boot 如何解決項目啟動時初始化資源 ,利用 CommandLineRunner 在項目啟動的時候配置好 MemcachedClient 。
@Component
public class MemcachedRunner implements CommandLineRunner {
protected Logger logger = LoggerFactory.getLogger(this.getClass());
@Resource
private MemcacheSource memcacheSource;
private MemcachedClient client = null;
@Override
public void run(String... args) throws Exception {
try {
client = new MemcachedClient(new InetSocketAddress(memcacheSource.getIp(),memcacheSource.getPort()));
} catch (IOException e) {
logger.error("inint MemcachedClient failed ",e);
}
}
public MemcachedClient getClient() {
return client;
}
}
測試使用
@RunWith(SpringRunner.class)
@SpringBootTest
public class RepositoryTests {
@Resource
private MemcachedRunner memcachedRunner;
@Test
public void testSetGet() {
MemcachedClient memcachedClient = memcachedRunner.getClient();
memcachedClient.set("testkey",1000,"666666");
System.out.println("*********** "+memcachedClient.get("testkey").toString());
}
}
使用中先測試插入一個 key 為 testkey ,1000 為過期時間單位為 毫秒,最后的 “666666” 為 key 對應(yīng)的值。
執(zhí)行測試用例 testSetGet ,控制臺輸出內(nèi)容:
*********** 666666
表明測試成功。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
使用Mybatis如何實現(xiàn)刪除多個數(shù)據(jù)
這篇文章主要介紹了使用Mybatis如何實現(xiàn)刪除多個數(shù)據(jù),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03
Spring Cloud Gateway 使用JWT工具類做用戶登錄校驗功能
這篇文章主要介紹了Spring Cloud Gateway 使用JWT工具類做用戶登錄校驗的示例代碼,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-01-01
詳解Java中的do...while循環(huán)語句的使用方法
這篇文章主要介紹了Java中的do...while循環(huán)語句的使用方法,是Java入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下2015-10-10
Docker 部署 SpringBoot 項目整合 Redis 鏡像做訪問計數(shù)示例代碼
這篇文章主要介紹了Docker 部署 SpringBoot 項目整合 Redis 鏡像做訪問計數(shù)Demo,本文給大家介紹的非常詳細,具有參考借鑒價值,需要的朋友可以參考下2018-01-01
Spring Boot右鍵maven build成功但是直接運行main方法出錯的解決方案
這篇文章主要介紹了Spring Boot-右鍵maven build成功但是直接運行main方法出錯的解決方案,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-08-08
Java web數(shù)據(jù)可視化實現(xiàn)原理解析
這篇文章主要介紹了Java web數(shù)據(jù)可視化實現(xiàn)原理解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-03-03

