Memcached安裝與使用例項
Memcached簡介
Memcached 是一個高效能的分散式記憶體物件快取系統,用於動態Web應用以減輕資料庫負載。它通過在記憶體中快取資料和物件來減少讀取資料庫的次數,從而提高動態、資料庫驅動網站的速度。
安裝與啟動
1.安裝Libevent
Libevent 是一個用C語言編寫的、輕量級的開源高效能事件通知庫。安裝命令:
yum install libevent libevent-deve
也可使用的原始碼安裝方式。
2.安裝memcached
1). wget http://memcached.org/latest - 獲取最新版
下載的檔名是 latest, rename 一下(mv命令)
2) mv latest memcached-1.5.tar.gz
3) 安裝 tar -zxvf memcached-1.5.tar.gz
4)配置: ./configure –prefix=/usr/local/memcached-1.5.7
出現錯誤: no acceptable C compiler found in $PATH
沒有C編譯器, 安裝一個gcc
yum -y install gcc
5) 編譯 , 分別執行以下命令
./configure –prefix=/usr/local/memcached-1.5.7
make && make test
如果這一步出現error while loading shared libraries: libevent-2.1.so.6: cannot open shared object file: No such file or directory 的錯誤,見下面libevent安裝。
sudo make install
6)執行
cd /usr/local/memcached-1.5.7
命名行幫助:
bin/memcached -h
啟動選項:
-d是啟動一個守護程式;
-m是分配給Memcache使用的記憶體數量,單位是MB;
-u是執行Memcache的使用者;
-l是監聽的伺服器IP地址,可以有多個地址;
-p是設定Memcache監聽的埠,,最好是1024以上的埠;
-c是最大執行的併發連線數,預設是1024;
-P是設定儲存Memcache的pid檔案
作為後臺服務程式執行:
bin/memcached -p 11211 -m 64m -d
或者
bin/memcached -d -m 64M -u root -l xx.xx.xx.xx -p 11211 -c 256 -P /tmp/memcached.pid
至此,安裝啟動完成.
libevent安裝
檢視是否安裝 libevent
ls -al /usr/lib | grep libevent
wget https://github.com/libevent/libevent/releases/download/release-2.1.8-stable/libevent-2.1.8-stable.tar.gz
tar -zxvf libevent-2.1.8-stable.tar.gz
./configure –prefix=/usr
sudo make
sudo make install
libevent會安裝到 /usr/lib 或 /usr/local/lib 下
測試libevent是否安裝成功:ls -al /usr/lib | grep libevent(或 ls -al /usr/local/lib | grep libevent)
如果libevent的安裝目錄為/usr/local/lib下,則還需要建立 libevent-2.0.so.6 到 /usr/lib 的軟連線,這樣其他程式執行時才能找到libevent庫:
ln -s /usr/local/lib/libevent-2.0.so.6 /usr/lib/libevent-2.0.so.6
移除:
rpm -e libevent –nodeps
安裝問題解決
es: error while loading shared libraries: libevent-2.1.so.6: cannot open shared object file: No such file or directory
原因是:已經安裝了該共享庫, 但執行需要呼叫該共享庫的程式的時候, 程式按照預設共享庫路徑找不到該共享庫檔案.
1) 如果共享庫檔案安裝到了/lib或/usr/lib目錄下, 那麼需執行一下ldconfig命令
2) 如果共享庫檔案安裝到了/usr/local/lib(很多開源的共享庫都會安裝到該目錄下)或其它”非/lib或/usr/lib”目錄下, 那麼在執行ldconfig命令前, 還要把新共享庫目錄加入到共享庫配置檔案/etc/ld.so.conf中, 如下:
cat /etc/ld.so.conf
include ld.so.conf.d/*.conf
echo “/usr/local/lib” >> /etc/ld.so.conf
ldconfig
3) 如果共享庫檔案安裝到了其它”非/lib或/usr/lib” 目錄下, 但是又不想在/etc/ld.so.conf中加路徑(或者是沒有許可權加路徑). 那可以export一個全域性變數LD_LIBRARY_PATH, 然後執行程式的時候就會去這個目錄中找共享庫.
LD_LIBRARY_PATH的意思是告訴loader在哪些目錄中可以找到共享庫. 可以設定多個搜尋目錄, 這些目錄之間用冒號分隔開. 比如安裝了一個mysql到/usr/local/mysql目錄下, 其中有一大堆庫檔案在/usr/local/mysql/lib下面, 則可以在.bashrc或.bash_profile或shell里加入以下語句即可:
export LD_LIBRARY_PATH=/usr/local/mysql/lib:$LD_LIBRARY_PATH
命令端連線與使用
可以通過 telnet 命令並指定主機ip和埠來連線 Memcached 服務。
- telnet HOST PORT - 連線
- set foo 0 0 3 - 儲存命令
- bar - 資料
- get foo - 取得命令
- quit - 退出
看不懂上面的部門, 沒關係, 接下來介紹Memcached 命令
儲存命令
1. set 命令
用於將 value(資料值) 儲存在指定的 key(鍵) 中。
如果set的key已經存在,該命令可以更新該key所對應的原來的資料,也就是實現更新的作用。
set key flags exptime bytes [noreply]
value
引數說明如下:
key:鍵值 key-value 結構中的 key,用於查詢快取值。
flags:可以包括鍵值對的整型引數,客戶機使用它儲存關於鍵值對的額外資訊 。
exptime:在快取中儲存鍵值對的時間長度(以秒為單位,0 表示永遠)
bytes:在快取中儲存的位元組數
noreply(可選): 該引數告知伺服器不需要返回資料
value:儲存的值(始終位於第二行)(可直接理解為key-value結構中的value)
輸出資訊說明:
STORED:儲存成功後輸出。
ERROR:在儲存失敗後輸出。
- add 命令
Memcached add 命令用於將 value(資料值) 儲存在指定的 key(鍵) 中。
如果 add 的 key 已經存在,則不會更新資料(過期的 key 會更新),之前的值將仍然保持相同,並且您將獲得響應
add key flags exptime bytes [noreply]
value
- replace 命令
Memcached replace 命令用於替換已存在的 key(鍵) 的 value(資料值)。
如果 key 不存在,則替換失敗,並且您將獲得響應 NOT_STORED。
replace key flags exptime bytes [noreply]
value
- append命令
Memcached append 命令用於向已存在 key(鍵) 的 value(資料值) 後面追加資料
append key flags exptime bytes [noreply]
value
- prepend命令
Memcached prepend 命令用於向已存在 key(鍵) 的 value(資料值) 前面追加資料 。
prepend key flags exptime bytes [noreply]
value
- CAS命令
Memcached CAS(Check-And-Set 或 Compare-And-Swap) 命令用於執行一個”檢查並設定”的操作
它僅在當前客戶端最後一次取值後,該key 對應的值沒有被其他客戶端修改的情況下, 才能夠將值寫入。
檢查是通過cas_token引數進行的, 這個引數是Memcach指定給已經存在的元素的一個唯一的64位值。
cas key flags exptime bytes unique_cas_token [noreply]
v
value
Java連線獲取值
jar檔地址:
https://code.google.com/archive/p/spymemcached/downloads
如果是使用maven的話, 直接在pom.xml中新增 dependency 是無法下載的。
把下載的jar copy 到 D:\temp目錄
mvn install:install-file -DgroupId=spy -DartifactId=memcached -Dversion=2.10.3 -Dpackaging=jar -Dfile=D:\temp\spymemcached-2.10.3.jar
再到pom.xml 新增以下部分:
spy
memcached
2.10.3
好了, 開始測試程式碼了
/**
* @Title: MemcachedTest.java
* @Package com.oscar999
* @Description: TODO
* @author oscar999
* @date May 7, 2018 3:10:19 PM
* @version V1.0
*/
package com.oscar999;
import java.io.IOException;
import java.net.InetSocketAddress;
import org.junit.Test;
import net.spy.memcached.MemcachedClient;
/**
* @ClassName: MemcachedTest
* @Description: TODO
* @author oscar999
*/
public class MemcachedTest {
@Test
public void test() throws IOException {
MemcachedClient mcc = new MemcachedClient(new InetSocketAddress("172.21.145.77", 11211));
System.out.println("Connection to server sucessful.");
String s = (String) mcc.get("foo");
System.out.println("foo in cache=" + s);
mcc.shutdown();
}
}
連線伺服器, 並獲取foo的值。
相關文章
- 安裝和使用memcached(windows)Windows
- 安裝和使用memcached(linux)Linux
- 安裝 Memcached
- memcached 安裝
- memcached安裝
- memcache與memcached的區別與安裝
- Ubuntu 安裝 MemcachedUbuntu
- ubuntu安裝memcachedUbuntu
- memcached 安裝配置
- memcached安裝及.NET中的Memcached.ClientLibrary使用詳解client
- 5.6單例項安裝單例
- Redis單例項安裝Redis單例
- memcached安裝測試
- centos下安裝memcachedCentOS
- 實戰Memcached快取系統(5)Memcached的CAS程式例項快取
- mysql 5.7單例項安裝MySql單例
- 安裝python-memcachedPython
- oracle例項安裝到 4% 不能繼續安裝Oracle
- 通過Cache::Memcached方式 例項物件應用物件
- Linux下安裝 Docker例項LinuxDocker
- 【Oracle】ASM例項安裝入門OracleASM
- oracle單例項12.2.0.1安裝Oracle單例
- 安裝Mongodb3.0.6單例項MongoDB單例
- BIND 9快速安裝例項(轉)
- Grub安裝、配置以及使用例項彙總講解(轉)
- memcached安裝和php擴充套件memcache安裝PHP套件
- oracle 11g 單例項安裝Oracle單例
- oracle 多個例項安裝監聽Oracle
- 清除安裝失敗的asm例項ASM
- 實戰Memcached快取系統(6)Memcached CAS的多執行緒程式例項快取執行緒
- Memcached安裝及啟動指令碼指令碼
- QuartusII13.0 版本的安裝與使用舉例
- mysqld_multi安裝多個mysql例項MySql
- Qmail+LDAP安裝配置例項(一)(轉)AILDA
- 單機環境安裝配置ASM例項ASM
- Android應用例項之----基於BroadCastReceiver的SD卡裝載解除安裝例項!AndroidASTSD卡
- memcached安裝及開啟SASL驗證
- Centos7編譯安裝Memcached教程。CentOS編譯