在Linux上安裝Memcached服務
-
分別把memcached和libevent下載回來,放到 /tmp 目錄下:
-
先安裝libevent:
-
tar zxvf libevent-1.2.tar.gz
-
cd libevent-1.2
-
./configure –prefix=/usr
-
make
-
make install
-
-
測試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
還不錯,都安裝上了。 -
安裝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
,
-
-
測試是否成功安裝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服務:
-
啟動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, -
如果要結束Memcache程式,執行:
killcat /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安裝成功!
常見問題
常見問題:
-
如果啟動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服務了.
-
把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,在新的連線上使用身份驗證