SpringBoot 集成 Memcached的方法示例
Memcached 介紹
Memcached 是一個(gè)高性能的分布式內(nèi)存對象緩存系統(tǒng),用于動態(tài)Web應(yīng)用以減輕數(shù)據(jù)庫負(fù)載。它通過在內(nèi)存中緩存數(shù)據(jù)和對象來減少讀取數(shù)據(jù)庫的次數(shù),從而提高動態(tài)、數(shù)據(jù)庫驅(qū)動網(wǎng)站的速度。Memcached基于一個(gè)存儲鍵/值對的hashmap。其守護(hù)進(jìn)程(daemon )是用C寫的,但是客戶端可以用任何語言來編寫,并通過memcached協(xié)議與守護(hù)進(jìn)程通信。
因?yàn)?Spring Boot 沒有針對 Memcached 提供對應(yīng)的組建包,因此需要我們自己來集成。官方推出的 Java 客戶端 Spymemcached 是一個(gè)比較好的選擇之一。
Spymemcached 介紹
Spymemcached 最早由 Dustin Sallings 開發(fā),Dustin 后來和別人一起創(chuàng)辦了 Couchbase (原NorthScale),職位為首席架構(gòu)師。2014 加入 Google。
Spymemcached 是一個(gè)采用 Java 開發(fā)的異步、單線程的 Memcached 客戶端, 使用 NIO 實(shí)現(xiàn)。Spymemcached 是 Memcached 的一個(gè)流行的 Java client 庫,性能表現(xiàn)出色,廣泛應(yīng)用于 Java + Memcached 項(xiàng)目中。
依賴配置
添加依賴
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 如何解決項(xiàng)目啟動時(shí)初始化資源 ,利用 CommandLineRunner 在項(xiàng)目啟動的時(shí)候配置好 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());
}
}
使用中先測試插入一個(gè) key 為 testkey ,1000 為過期時(shí)間單位為 毫秒,最后的 “666666” 為 key 對應(yīng)的值。
執(zhí)行測試用例 testSetGet ,控制臺輸出內(nèi)容:
*********** 666666
表明測試成功。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
使用Mybatis如何實(shí)現(xiàn)刪除多個(gè)數(shù)據(jù)
這篇文章主要介紹了使用Mybatis如何實(shí)現(xiàn)刪除多個(gè)數(shù)據(jù),具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03
Spring Cloud Gateway 使用JWT工具類做用戶登錄校驗(yàn)功能
這篇文章主要介紹了Spring Cloud Gateway 使用JWT工具類做用戶登錄校驗(yàn)的示例代碼,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01
詳解Java中的do...while循環(huán)語句的使用方法
這篇文章主要介紹了Java中的do...while循環(huán)語句的使用方法,是Java入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下2015-10-10
Docker 部署 SpringBoot 項(xiàng)目整合 Redis 鏡像做訪問計(jì)數(shù)示例代碼
這篇文章主要介紹了Docker 部署 SpringBoot 項(xiàng)目整合 Redis 鏡像做訪問計(jì)數(shù)Demo,本文給大家介紹的非常詳細(xì),具有參考借鑒價(jià)值,需要的朋友可以參考下2018-01-01
Spring Boot右鍵maven build成功但是直接運(yùn)行main方法出錯的解決方案
這篇文章主要介紹了Spring Boot-右鍵maven build成功但是直接運(yùn)行main方法出錯的解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08
Java web數(shù)據(jù)可視化實(shí)現(xiàn)原理解析
這篇文章主要介紹了Java web數(shù)據(jù)可視化實(shí)現(xiàn)原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03

