在Linux上安裝Memcached服務

Crazy_Coder發表於2015-11-03

在Linux上安裝Memcached服務

  1. 分別把memcached和libevent下載回來,放到 /tmp 目錄下:

  2. 先安裝libevent:

    • tar zxvf libevent-1.2.tar.gz

    • cd libevent-1.2

    • ./configure –prefix=/usr

    • make

    • make install

  3. 測試libevent是否安裝成功:
    ls -al /usr/lib | grep libevent
    lrwxrwxrwx 1 root root 21 11?? 12 17:38 libevent-1.2.so.1 -> libevent-1.2.so.1.0.3
    -rwxr-xr-x 1 root root 263546 11?? 12 17:38 libevent-1.2.so.1.0.3
    -rw-r–r– 1 root root 454156 11?? 12 17:38 libevent.a
    -rwxr-xr-x 1 root root 811 11?? 12 17:38 libevent.la
    lrwxrwxrwx 1 root root 21 11?? 12 17:38 libevent.so -> libevent-1.2.so.1.0.3
    還不錯,都安裝上了。

  4. 安裝memcached,同時需要安裝中指定libevent的安裝位置:

    • cd /tmp

    • tar zxvf memcached-1.2.0.tar.gz

    • cd memcached-1.2.0

    • ./configure –with-libevent=/usr

    • make

    • make install
      如果中間出現報錯,請仔細檢查錯誤資訊,按照錯誤資訊來配置或者增加相應的庫或者路徑。
      安裝完成後會把memcached放到 /usr/local/bin/memcached

  5. 測試是否成功安裝memcached:
    ls -al /usr/local/bin/mem*
    -rwxr-xr-x 1 root root 137986 11?? 12 17:39 /usr/local/bin/memcached
    -rwxr-xr-x 1 root root 140179 11?? 12 17:39 /usr/local/bin/memcached-debug

啟動Memcached服務

啟動Memcached服務:

  1. 啟動Memcache的伺服器端:
    /usr/local/bin/memcached -d -m 10 -u root -l 192.168.141.64 -p 12000 -c 256 -P /tmp/memcached.pid
    -d選項是啟動一個守護程式,
    -m是分配給Memcache使用的記憶體數量,單位是MB,我這裡是10MB,
    -u是執行Memcache的使用者,我這裡是root,
    -l是監聽的伺服器IP地址,如果有多個地址的話,我這裡指定了伺服器的IP地址192.168.0.200,
    -p是設定Memcache監聽的埠,我這裡設定了12000,最好是1024以上的埠,
    -c選項是最大執行的併發連線數,預設是1024,我這裡設定了256,按照你伺服器的負載量來設定,
    -P是設定儲存Memcache的pid檔案,我這裡是儲存在 /tmp/memcached.pid,

  2. 如果要結束Memcache程式,執行:
    kill cat /tmp/memcached.pid

也可以啟動多個守護程式,不過埠不能重複。

測試Memcached

測試

Memcached:
[root@localhost /]# telnet 192.168.141.64 12000
Trying 192.168.141.64...
Connected to 192.168.141.64 (192.168.141.64).
Escape character is `^]`.
set key1 0 60 4
zhou
STORED
get key1
VALUE key1 0 4
zhou
END

至此Memcached安裝成功!

常見問題

常見問題:

  1. 如果啟動Memcached服務的時候遇到了

    /usr/local/bin/memcached: error while loading shared libraries: libevent-1.2.so.1: cannot open shared object file: No such file or directory;
    
    解決方案:
    
    [root@localhost bin]# LD_DEBUG=libs memcached -v 
    [root@localhost bin]# ln -s /usr/lib/libevent-1.2.so.1 /usr/lib64/libevent-1.2.so.1
    [root@localhost bin]# /usr/local/bin/memcached -d -m 100 -u root -p 12000 -c 1000 -P /tmp/memcached.pid
    [root@localhost bin]# ps -aux
    可以看到啟動的Memcached服務了.
    
  2. 把Memcached服務載入到Linux的啟動項中.萬一機器斷電系統重啟.那麼Memcached就會自動啟動了.

假如啟動Memcache的伺服器端的命令為:

/usr/local/bin/memcached -d -m 10 -u root -l 192.168.141.64 -p 12000 -c 256 -P /tmp/memcached.pid容來自17jquery

想開機自動啟動的話,只需在/etc/rc.d/rc.local中加入一行,下面命令
/usr/local/memcached/bin/memcached -d -m 10 -p 12000 -u apache -c 256
上面有些東西可以參考一下:即,ip不指定時,預設是本機,使用者:最好選擇是:apache 或 deamon
這樣,也就是屬於哪個使用者的服務,由哪個使用者啟動。

memcached之java客戶端:spymemcached與spring整合

net.spy.memcached.spring.MemcachedClientFactoryBean在net.spy.memcached.MemcachedClient每次使用的時候建立MemcachedClient的新例項。

<bean id="memcachedClient" class="net.spy.memcached.spring.MemcachedClientFactoryBean">  
    <property name="servers" value="host1:11211,host2:11211,host3:11211"/>  
    <property name="protocol" value="BINARY"/>  
    <property name="transcoder">  
      <bean class="net.spy.memcached.transcoders.SerializingTranscoder">  
        <property name="compressionThreshold" value="1024"/>  
      </bean>  
    </property>  
    <property name="opTimeout" value="1000"/>  
    <property name="timeoutExceptionThreshold" value="1998"/>  
    <property name="hashAlg" value="KETAMA_HASH"/>  
    <property name="locatorType" value="CONSISTENT"/>   
    <property name="failureMode" value="Redistribute"/>  
    <property name="useNagleAlgorithm" value="false"/>  
</bean>  

屬性說明:

Servers
一個字串,包括由空格或逗號分隔的主機或IP地址與埠號
Daemon
設定IO執行緒的守護程式(預設為true)狀態
FailureMode
設定故障模式(取消,重新分配,重試),預設是重新分配
HashAlg
設定雜湊演算法(見net.spy.memcached.HashAlgorithm的值)
InitialObservers
設定初始連線的觀察者(觀察初始連線)
LocatorType
設定定位器型別(ARRAY_MOD,CONSISTENT),預設是ARRAY_MOD
MaxReconnectDelay
設定最大的連線延遲
OpFact
設定操作工廠
OpQueueFactory
設定操作佇列工廠
OpTimeout
以毫秒為單位設定預設的操作超時時間
Protocol
指定要使用的協議(BINARY,TEXT),預設是TEXT
ReadBufferSize
設定讀取的緩衝區大小
ReadOpQueueFactory
設定讀佇列工廠
ShouldOptimize
如果預設操作優化是不可取的,設定為false(預設為true)
Transcoder
設定預設的轉碼器(預設以net.spy.memcached.transcoders.SerializingTranscoder)
UseNagleAlgorithm
如果你想使用Nagle演算法,設定為true
WriteOpQueueFactory
設定寫佇列工廠
AuthDescriptor
設定authDescriptor,在新的連線上使用身份驗證

相關文章