Memcached安装与配置
歡迎支持筆者新作:《深入理解Kafka:核心設計與實踐原理》和《RabbitMQ實戰指南》,同時歡迎關注筆者的微信公眾號:朱小廝的博客。
歡迎跳轉到本文的原文鏈接:https://honeypps.com/backend/memcached-install-and-config/
?memcached是danga.com的一個項目,它是一款開源的高性能的分布式內存對象緩存系統,最早是給LiveJournal提供服務的,后來逐漸被越來越多的大型網站所采用,用于在應用中減少對數據庫的訪問,提高應用的訪問速度,并降低數據庫的負載。
?為了在內存中提供數據的高速查找能力,memcached使用key-value形式存儲和訪問數據,在內存中維護一張巨大的HashTable,使得對數據查詢的時間復雜度降低到O(1),保證了對數據的高性能訪問。內存的空間總是有限的,當內存沒有更多的空間來存儲新的數據是,memcached就會用LRU算法將最近不常訪問的數據淘汰掉,以騰出空間來存放新的數據。memcached存儲支持的數據格式也是靈活多樣的,通過對象的序列化機制,可以將更高層抽象的對象轉換成為二進制數據,存儲在緩存服務器中,當前端應用需要時,又可以通過二進制內容反序列化,將數據還原成原對象。
?由于memcached使用了libevent來進行高效的網絡連接處理,因此在安裝memcached之前,需要先安裝libevent。
?所有的安裝包可以在這里下載。
安裝libevent
版本 libevent-2.0.21-stable.tar.gz(假設放在/root目錄下)
測試libevent是否安裝成功(沒有必然性,只供參考)
[root@zzh libevent-2.0.21-stable]# ls -al /root/libevent/lib | grep libevent lrwxrwxrwx. 1 root root 21 4月 5 22:05 libevent-2.0.so.5 -> libevent-2.0.so.5.1.9 -rwxr-xr-x. 1 root root 968722 4月 5 22:05 libevent-2.0.so.5.1.9 -rw-r--r--. 1 root root 1571586 4月 5 22:05 libevent.a lrwxrwxrwx. 1 root root 26 4月 5 22:05 libevent_core-2.0.so.5 -> libevent_core-2.0.so.5.1.9 -rwxr-xr-x. 1 root root 585265 4月 5 22:05 libevent_core-2.0.so.5.1.9 -rw-r--r--. 1 root root 978314 4月 5 22:05 libevent_core.a -rwxr-xr-x. 1 root root 980 4月 5 22:05 libevent_core.la lrwxrwxrwx. 1 root root 26 4月 5 22:05 libevent_core.so -> libevent_core-2.0.so.5.1.9 lrwxrwxrwx. 1 root root 27 4月 5 22:05 libevent_extra-2.0.so.5 -> libevent_extra-2.0.so.5.1.9 -rwxr-xr-x. 1 root root 404884 4月 5 22:05 libevent_extra-2.0.so.5.1.9 -rw-r--r--. 1 root root 593344 4月 5 22:05 libevent_extra.a -rwxr-xr-x. 1 root root 987 4月 5 22:05 libevent_extra.la lrwxrwxrwx. 1 root root 27 4月 5 22:05 libevent_extra.so -> libevent_extra-2.0.so.5.1.9 -rwxr-xr-x. 1 root root 945 4月 5 22:05 libevent.la lrwxrwxrwx. 1 root root 30 4月 5 22:05 libevent_pthreads-2.0.so.5 -> libevent_pthreads-2.0.so.5.1.9 -rwxr-xr-x. 1 root root 18462 4月 5 22:05 libevent_pthreads-2.0.so.5.1.9 -rw-r--r--. 1 root root 18662 4月 5 22:05 libevent_pthreads.a -rwxr-xr-x. 1 root root 1008 4月 5 22:05 libevent_pthreads.la lrwxrwxrwx. 1 root root 30 4月 5 22:05 libevent_pthreads.so -> libevent_pthreads-2.0.so.5.1.9 lrwxrwxrwx. 1 root root 21 4月 5 22:05 libevent.so -> libevent-2.0.so.5.1.9安裝memcached
[root@zzh ~]# mkdir memcached [root@zzh ~]# tar -zvxf memcached-1.4.7.tar.gz [root@zzh ~]# cd memcached-1.4.7/ [root@zzh memcached-1.4.7]# ./configure --prefix=/root/memcached --with-libevent=/root/libevent [root@zzh memcached-1.4.7]# make [root@zzh memcached-1.4.7]# make install啟動memcached
[root@zzh ~]# cd memcached/bin/ [root@zzh bin]# memcached -d -m 10 -u root -l 10.10.195.112 -p 11211 -c 32 -P /tmp/memcached.pid參數描述:
-d :啟動一個守護進程,
-m:分配給Memcache使用的內存數量,單位是MB,默認是64MB,
-u :運行Memcache的用戶
-l :監聽的服務器IP地址
-p :設置Memcache監聽的端口,默認是11211 注:-p(p為小寫)
-c :設置最大并發連接數,默認是1024
-P :設置保存Memcache的pid文件 注:-P(P為大寫)
-f :塊大小增長因子,默認是1.25
-n :最小分配空間,key+value+flags默認是48
-h :顯示幫助
查看memcached進程
[root@zzh bin]# ps -aux | grep memcached Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ root 13904 0.0 0.0 326708 912 ? Ssl 22:26 0:00 ./memcached -d -m 10 -u root -l 10.10.195.112 -p 11211 -c 32 -P /tmp/memcached.pid root 13912 0.0 0.0 103248 852 pts/2 S+ 22:27 0:00 grep memcached關閉memcached進程(采用kill pid的命令)
[root@zzh bin]# kill `cat /tmp/memcached.pid`或者
[root@zzh bin]# kill 13904連接memcached
telnet 127.0.0.1 11211?memcache有一些常用的命令:set, add, replace,append, preappend, cas, get, incr, decr, delete等,詳細可以查閱相關資料。
Java客戶端與memcached
?memcached官方提供的Memcached-Java-Client工具包含了對memcached協議的Java封裝,使用它可以比較方便地與環城服務端進行通訊。
?案例
輸出結果:
hello zzzzh! 1 2參考資料
歡迎跳轉到本文的原文鏈接:https://honeypps.com/backend/memcached-install-and-config/
歡迎支持筆者新作:《深入理解Kafka:核心設計與實踐原理》和《RabbitMQ實戰指南》,同時歡迎關注筆者的微信公眾號:朱小廝的博客。
總結
以上是生活随笔為你收集整理的Memcached安装与配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 设计模式:中介者模式(Mediator)
- 下一篇: 采用Memcached实现分布式Sess