java使用Memcached簡(jiǎn)單教程
Memcached作為一個(gè)高并發(fā)內(nèi)存Cached系統(tǒng)被很多大公司使用,最近也一直在用Memcached做項(xiàng)目也積累了一些相關(guān)經(jīng)驗(yàn)。
Install
Memcached的安裝很簡(jiǎn)單,在Ubuntu下面一行命令搞定。
sudo apt-get install memcached
Start
實(shí)際使用的時(shí)候,memcached需要調(diào)整內(nèi)存大小和端口號(hào)等命令,則啟動(dòng)的使用時(shí)用以下的Command就行。
usr/local/bin/memcached -p 11211 -m 64m -d
-p 指定端口號(hào)
-m 指定內(nèi)存大小
-d 作為daemon在后臺(tái)啟動(dòng)
如果想trouble shotting 則加 -vv
Test
Test也很簡(jiǎn)單,安裝官網(wǎng)的命令就行
telnet localhost 11211
里面就能Get和Set了。
Use in Java
由于項(xiàng)目是java的,所以以java為例子來(lái)介紹Java下Memcached的使用。
Java下Memcached的客戶端很多,這里介紹spymemcached
spymemcached的使用很簡(jiǎn)單,在maven項(xiàng)目下面,我們加入如下依賴。
<dependency>
<groupId>net.spy</groupId>
<artifactId>spymemcached</artifactId>
<version>2.9.1</version>
</dependency>
這樣我們就能對(duì)Memcached操作了。
public class Memcached {
private static MemcachedClient MEMCACHED_CLIENT;
static {
try {
MEMCACHED_CLIENT = new MemcachedClient(
AddrUtil.getAddresses("localhost1:11211 localhost2:11211"));
} catch (Exception e) {
System.err.println("Cannot init MEMCACHED Memcached Client");
}
}
public static void set(String key, String value,Integer expireTime ) throws Exception {
MEMCACHED_CLIENT.set(key, expireTime, value);
}
public static String get(String key) throws Exception {
Object value = MEMCACHED_CLIENT.get(key);
if (null != value)
return value.toString();
return null;
}
}
Monitor
我們可以通過(guò)以下簡(jiǎn)單的命令得知Memcached的運(yùn)行狀況,以此為擴(kuò)充可以實(shí)現(xiàn)簡(jiǎn)單的Memcached檢測(cè)shell。
watch "echo stats | nc 127.0.0.1 11211"
Conclusion
Memcached實(shí)際使用下來(lái)簡(jiǎn)單易用,各個(gè)平臺(tái)上面也有相應(yīng)的Client.
但有時(shí)高并發(fā)可能會(huì)出現(xiàn)Timeout的情況,導(dǎo)致緩沖沒(méi)辦法命中的情況,具體原因還需要進(jìn)一步調(diào)查。
Memcahed的作者最近用Go語(yǔ)言去寫(xiě)了groupcache很值得關(guān)注。
相關(guān)文章
JavaWeb實(shí)現(xiàn)注冊(cè)用戶名檢測(cè)
這篇文章主要為大家詳細(xì)介紹了JavaWeb實(shí)現(xiàn)注冊(cè)用戶名檢測(cè),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-08-08
SpringBoot通過(guò)ThreadLocal實(shí)現(xiàn)登錄攔截詳解流程
這篇文章主要介紹了SpringBoot(HandlerInterceptor)+ThreadLocal實(shí)現(xiàn)登錄攔截,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05
Java中ClassLoader類加載學(xué)習(xí)總結(jié)
本篇文章主要給大家講述了Java中ClassLoader類加載的原理以及用法總結(jié),一起學(xué)習(xí)下。2017-12-12
RestTemplate get請(qǐng)求攜帶headers自動(dòng)拼接參數(shù)方式
這篇文章主要介紹了RestTemplate get請(qǐng)求攜帶headers自動(dòng)拼接參數(shù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07
mybatis 根據(jù)id批量刪除的實(shí)現(xiàn)操作
這篇文章主要介紹了mybatis 根據(jù)id批量刪除的實(shí)現(xiàn)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-08-08

