memcache安裝和簡單的分布式

jopen 11年前發布 | 18K 次閱讀 緩存服務器 memcached Memcache

memcached安裝:
1.安裝memcached首先得安裝libevent  我這里安裝的是libevent-2.0.18-stable.tar.gz   官網地址:http://libevent.org/
2.下載之后存放在/home/tmp/
3.解壓tar -xvf libevent-2.0.18-stable.tar.gz  
4.安裝 進入cd libevent-2.0.18-stable  執行命令:./configure --prefix=/usr
5.安裝命令:make && make install  (查看是否成功:ls -al /usr/lib | grep libevent  這個命令是會顯示一堆數據哦)


安裝memcached
1.下載memcached  官網地址是:http://code.google.com/p/memcached/downloads/list  我選擇的版本是:memcached-1.4.13.tar.gz
2.解壓 tar -xvf memcached-1.4.13.tar.gz  ---->  進入cd memcached-1.4.13
3../configure --with-libevent=/usr
4.安裝命令:make && make install(看清過程有沒有出錯)
5.啟動一個memcached   執行命令:/usr/local/bin/memcached -d -m 1024 -u root -l 192.168.75.88 -p 10001 -c 256 -P /home/tmp/memcached.pid 


以下是各個參數的解釋:


-d選項是啟動一個守護進程,
-m是分配給Memcache使用的內存數量,單位是MB,我這里是1024MB,
-u是運行Memcache的用戶,我這里是root,
-l是監聽的服務器IP地址
-p是設置Memcache監聽的端口 
-c選項是最大運行的并發連接數,默認是1024 (這個看你機器負載的情況來設置)

-P是設置保存Memcache的pid文件,我這里是保存在 /home/tmp/memcached.pid


這里還做了一個分布式  、記得哦 親們 分布式是在客戶端實現,利用客戶端自帶的hash算法實現存儲到不同的服務器上

寫了一些簡單代碼

package nettyproject.com.main;

import com.danga.MemCached.MemCachedClient;
import com.danga.MemCached.SockIOPool;

public class Test{

    private static MemCachedClient mem = new MemCachedClient("pool");

    static{
        //目前是使用的是sockiopool連接池  還有一種方式是xmemcached方式    俗稱memcachedclientbuilder
        String[] ips = {"192.168.75.88:10001","192.168.75.88:10002","192.168.75.88:10003"};

        SockIOPool sip = SockIOPool.getInstance("pool");//memcached的poolName必須和此name一樣
        sip.setServers(ips);
        sip.setInitConn(50);
        sip.setMinConn(50);
        sip.setMaxConn(500);
        sip.setNagle(true);
        sip.setHashingAlg(3);
        sip.initialize();//調用啟動pool方法
    }

    public static void setMemcached(String key,Object value){

我這里只有一臺服務器,所以我在一臺服務器上開了三個memcached進程

執行上面的程序之后,

看官們可以登錄到自己的服務器 、使用命令:telnet xxx.xxx.xx.x(ip) port(端口)

使用命令:get  key  來查看值

這個分布式有一個很嚴重的問題、就是其中某一臺服務器宕機之后 數據是找不回來的,找了網上的資料看了下 ,說是可以通過magent代理來解決

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!