日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Memcached安装与配置

發布時間:2024/4/11 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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目錄下)

[root@zzh ~]# mkdir libevent [root@zzh ~]# tar -zvxf libevent-2.0.21-stable.tar.gz [root@zzh ~]# cd libevent-2.0.21-stable [root@zzh libevent-2.0.21-stable]# ./configure --prefix=/root/libevent [root@zzh libevent-2.0.21-stable]# make [root@zzh libevent-2.0.21-stable]# make install

測試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封裝,使用它可以比較方便地與環城服務端進行通訊。
?案例

import com.danga.MemCached.MemCachedClient; import com.danga.MemCached.SockIOPool; import com.schooner.MemCached.MemcachedItem;public class MemcachedTest {public static void init(){String servers[] = {"10.10.195.112:11211"};SockIOPool pool = SockIOPool.getInstance();pool.setServers(servers);pool.setFailover(true);pool.setInitConn(10);pool.setMinConn(5);pool.setMaxConn(25);pool.setMaintSleep(30);pool.setNagle(false);pool.setSocketTO(3000);pool.setAliveCheck(true);pool.setHashingAlg(SockIOPool.CONSISTENT_HASH);pool.initialize();}public static void main(String[] args){init();MemCachedClient mem = new MemCachedClient();mem.add("UserName", "zzzzh");mem.prepend("UserName", "hello ");mem.append("UserName", "!");System.out.println(mem.get("UserName"));mem.set("key", 1);System.out.println(mem.get("key"));MemcachedItem item = mem.gets("key");mem.cas("key", (Integer)item.getValue()+1,item.getCasUnique());System.out.println(mem.get("key"));} }

輸出結果:

hello zzzzh! 1 2

參考資料

  • 《大型分布式網站架構設計與實踐》陳康賢著
  • 歡迎跳轉到本文的原文鏈接:https://honeypps.com/backend/memcached-install-and-config/

    歡迎支持筆者新作:《深入理解Kafka:核心設計與實踐原理》和《RabbitMQ實戰指南》,同時歡迎關注筆者的微信公眾號:朱小廝的博客。


    總結

    以上是生活随笔為你收集整理的Memcached安装与配置的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。