Memcached作為一個高並發記憶體Cached系統被很多大公司使用,最近也一直在用Memcached做項目也積累了一些相關經驗。
Install
Memcached的安裝很簡單,在Ubuntu下面一行命令搞定。
複製代碼 代碼如下:
sudo apt-get install memcached
Start
實際使用的時候,memcached需要調整記憶體大小和連接埠號碼等命令,則啟動的使用時用以下的Command就行。
複製代碼 代碼如下:
usr/local/bin/memcached -p 11211 -m 64m -d
-p 指定連接埠號碼
-m 指定記憶體大小
-d 作為daemon在後台啟動
如果想trouble shotting 則加 -vv
Test
Test也很簡單,安裝官網的命令就行
複製代碼 代碼如下:
telnet localhost 11211
裡面就能Get和Set了。
Use in Java
由於項目是java的,所以以java為例子來介紹Java下Memcached的使用。
Java下Memcached的用戶端很多,這裡介紹spymemcached
spymemcached的使用很簡單,在maven項目下面,我們加入如下依賴。
複製代碼 代碼如下:
<dependency>
<groupId>net.spy</groupId>
<artifactId>spymemcached</artifactId>
<version>2.9.1</version>
</dependency>
這樣我們就能對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
我們可以通過以下簡單的命令得知Memcached的健全狀態,以此為擴充可以實現簡單的Memcached檢測shell。
複製代碼 代碼如下:
watch "echo stats | nc 127.0.0.1 11211"
Conclusion
Memcached實際使用下來簡單易用,各個平台上面也有相應的Client.
但有時高並發可能會出現Timeout的情況,導致緩衝沒辦法命中的情況,具體原因還需要進一步調查。
Memcahed的作者最近用Go語言去寫了groupcache很值得關注。