Memcached學習筆記(四)——repcached高可用方案

Memcached學習筆記(四)——repcached高可用方案


repcached:全稱 replication cached是由日本人發明的memcached的高可用性技術,簡稱複製緩衝區技術。

使用場景:它是一個單master單 slave的方案,但它的 master/slave都是可讀寫的,而且可以相互同步,如果 master 宕機, slave偵測到連接斷了,它會自動 listen而成爲 master;而如果 slave壞掉, master也會偵測到連接斷,它就會重新 listen等待新的 slave加入。

(一)安裝相關依賴(編譯repcached程序所依賴的包):

[root@localhost memcached-1.2.8-repcached-2.2]# yum install libevent-devel
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * addons: mirrors.yun-idc.com
 * base: mirrors.yun-idc.com
 * epel: mirrors.yun-idc.com
 * extras: mirrors.yun-idc.com
 * updates: mirrors.yun-idc.com
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package libevent-devel.i386 0:1.4.13-1 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package                 Arch          Version              Repository     Size
================================================================================
Installing:
 libevent-devel          i386          1.4.13-1             base          373 k

Transaction Summary
================================================================================
Install       1 Package(s)
Upgrade       0 Package(s)

Total download size: 373 k
Is this ok [y/N]: y
Downloading Packages:
libevent-devel-1.4.13-1.i386.rpm                         | 373 kB     00:04
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : libevent-devel                                           1/1

Installed:
  libevent-devel.i386 0:1.4.13-1

Complete!
[root@localhost memcached-1.2.8-repcached-2.2]#

(二)下載並安裝:memcached-1.2.8-repcached-2.2.tar.gz

[root@localhost ~]# wget http://downloads.sourceforge.net/repcached/memcached-1.2.8-repcached-2.2.tar.gz
--2013-03-23 13:35:56--  http://downloads.sourceforge.net/repcached/memcached-1.2.8-repcached-2.2.tar.gz
Resolving downloads.sourceforge.net... 216.34.181.59
Connecting to downloads.sourceforge.net|216.34.181.59|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: http://downloads.sourceforge.net/project/repcached/repcached/2.2-1.2.8/memcached-1.2.8-repcached-2.2.tar.gz [following]
--2013-03-23 13:35:57--  http://downloads.sourceforge.net/project/repcached/repcached/2.2-1.2.8/memcached-1.2.8-repcached-2.2.tar.gz
Reusing existing connection to downloads.sourceforge.net:80.
HTTP request sent, awaiting response... 302 Found
Location: http://nchc.dl.sourceforge.net/project/repcached/repcached/2.2-1.2.8/memcached-1.2.8-repcached-2.2.tar.gz [following]
--2013-03-23 13:35:59--  http://nchc.dl.sourceforge.net/project/repcached/repcached/2.2-1.2.8/memcached-1.2.8-repcached-2.2.tar.gz
Resolving nchc.dl.sourceforge.net... 211.79.60.17, 2001:e10:ffff:1f02::17
Connecting to nchc.dl.sourceforge.net|211.79.60.17|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 227510 (222K) [application/x-gzip]
Saving to: `memcached-1.2.8-repcached-2.2.tar.gz'

100%[======================================>] 227,510      240K/s   in 0.9s

2013-03-23 13:36:01 (240 KB/s) - `memcached-1.2.8-repcached-2.2.tar.gz' saved [227510/227510]

[root@localhost ~]# tar zxvf memcached-1.2.8-repcached-2.2.tar.gz
[root@localhost ~]# ./configure --enable-replication --program-transform-name=s/memcached/repcached/ 
(三)啓動repcached (用非root操作):

[hadoop@localhost ~]$ /usr/local/bin/repcached -p 11211 -v -d
replication: listen
[hadoop@localhost ~]$ /usr/local/bin/repcached -p 11212 -x localhost -v -d
replication: connect (peer=127.0.0.1:11212)
replication: marugoto copying
replication: accept
[hadoop@localhost ~]$ replication: start
參數解釋:
-d : 後臺運行memcached進程
-p : 默認監聽端口11211  11212
-x : 監聽高可用機器,如果是監聽默認端口不用寫端口號,localhost就是監聽本機
作用:第二個repcached監聽第一個repcached如果有問題就接管

(四)複製實驗:

先連接11211機器,設置name 值爲“zhangsan”

[hadoop@localhost ~]$ telnet localhost 11211
Trying 127.0.0.1...
Connected to localhost (127.0.0.1).
Escape character is '^]'.
set name 0 0 8
zhangsan
STORED
get name
VALUE name 0 8
zhangsan
END
quit
Connection closed by foreign host.
連接11212機器,讀取name值:

[hadoop@localhost ~]$ telnet localhost 11212
Trying 127.0.0.1...
Connected to localhost (127.0.0.1).
Escape character is '^]'.
get name
VALUE name 0 8
zhangsan
END
(五)反向複製實驗

連接11211,設置age值爲23

[hadoop@localhost ~]$ telnet localhost 11212
Trying 127.0.0.1...
Connected to localhost (127.0.0.1).
Escape character is '^]'.
get name
VALUE name 0 8
zhangsan
END
set age 0 0 2
23
STORED
get age
VALUE age 0 2
23
END
連接11211,讀取age值:

[hadoop@localhost ~]$ telnet localhost 11211
Trying 127.0.0.1...
Connected to localhost (127.0.0.1).
Escape character is '^]'.
get age
VALUE age 0 2
23
END
get name
VALUE name 0 8
zhangsan
END
quit
Connection closed by foreign host.
(六)監控memcached:

[hadoop@localhost ~]$ stats cachedump 1 10
-bash: stats: command not found
[hadoop@localhost ~]$ telnet localhost 11211
Trying 127.0.0.1...
Connected to localhost (127.0.0.1).
Escape character is '^]'.
stats cachedump 1 10
ITEM name [8 b; 1365421489 s]
ITEM age [2 b; 1365421489 s]
END
stats items
STAT items:1:number 2
STAT items:1:age 119
STAT items:1:evicted 0
STAT items:1:evicted_time 0
STAT items:1:outofmemory 0
STAT items:1:tailrepairs 0
END

(7)實驗完成,祝您成功!

發佈了47 篇原創文章 · 獲贊 124 · 訪問量 20萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章