NOSQL系列-memcached安装管理与repcached高可用性

Memcached :基于内存工作键值存储型数据库,可以作为应用->memcached 缓存层->数据库。Danga Interactive公司开发,最初为了加速LiveJournal访问速度而开发的,后来成为广泛应用的开源项目。

一、实验环境

1.系统类型

[leo@h4 etc]$ cat issue

CentOS Linux release 6.0 (Final)

Kernel \r on an \m

2.系统位数

[leo@h4 桌面]$ getconf LONG_

32

Linux ISO:CentOS-6.0-i386-bin-DVD.iso 32位

JDK version:"1.6.0_25-ea"

虚拟机:Product VMware® Workstation Version 7.0.0 build-203739

3.CentOS需要能连入网络,这个比较简单,我们只需要设置菜单->系统->首选项->网络连接

打开网络连接

点击“编辑”,这是设置system eth0 网卡

选择IPv4设置->方法:自动(DHCP)[让系统动态分配ip即可]->应用,因为我在公司走的是路由器,所以选择自动分配IP比较方便

如果不是使用的root用户编辑的,会让你输入root用户密码,输入后点击“授权”即可

[root@h4 ~]# service network restart      重起网络服务

[root@h4 ~]# ifconfig                   这回我们看到ip地址已经被自动分配了

eth0      Link encap:Ethernet  HWaddr 00:0C:29:8B:7D:18  

          inet addr:192.168.2.107  Bcast:192.168.2.255  Mask:255.255.255.0

          inet6 addr: fe80::20c:29ff:fe8b:7d18/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:8847 errors:0 dropped:0 overruns:0 frame:0

          TX packets:2355 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:6067491 (5.7 MiB)  TX bytes:231934 (226.4 KiB)

          Interrupt:19 Base address:0x2024

lo        Link encap:Local Loopback  

          inet addr:127.0.0.1  Mask:255.0.0.0

          inet6 addr: ::1/128 Scope:Host

          UP LOOPBACK RUNNING  MTU:16436  Metric:1

          RX packets:10 errors:0 dropped:0 overruns:0 frame:0

          TX packets:10 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:0

          RX bytes:704 (704.0 b)  TX bytes:704 (704.0 b)

4.最最最重要的是设置VMware network“Bridged”桥接方式,才能连上物理网络哦
VMware菜单-> VM -> Settings –> 选择network Adapter

5.我们测试效果

看火狐浏览器中已经显示“楚汉传奇”的搜索结果了,我们伟大的上网了

哈 大家这个时候一定要坚持住啊,不要直接看电视剧去啦

恩 顺便推荐一下360搜索引擎,大家是否用过360搜索,效果比baidu 好些哦:)

下面我们转入正题

 

二、memcached安装管理

1.安装memcached包

我在网上看到很多人默认情况下yum不能安装

yum install memcached

Loaded plugins: rhnplugin, security

This system is not registered with RHN.

RHN support will be disabled.

Setting up Install Process

No package memcached available.

Nothing to do

原因是:操作系统在安装的时候yum包没有安装上,所以就没有。你只能去下载一个yum包,自己手动安装上

解决方案:可以参考吴飚的“yum报错完美解决帖”http://f.dataguru.cn/thread-44212-1-2.html

Linux ISO:CentOS-6.0-i386-bin-DVD.iso 32  如果你是安装这个版本的话,并且在选择组件的时候选择了yum组件那么现在可以直接yum install memcached,幸亏当初安装的时候抱着宁可错杀100也不放过1个心态,统统安装上了,现在可以直接使用啦!天灵灵 地灵灵 yumyum快显灵

[root@h4 ~]# yum install memcached

Loaded plugins: fastestmirror, refresh-packagekit

Loading mirror speeds from cached hostfile

* base: mirrors.btte.net

* extras: mirrors.btte.net

* updates: mirrors.btte.net

Setting up Install Process

Resolving Dependencies

--> Running transaction check

---> Package memcached.i686 0:1.4.4-3.el6 set to be updated

--> Finished Dependency Resolution

Dependencies Resolved    自动选择的版本1.4.4-3.el6,现在最高版本1.4.15

================================================================================

Package             Arch           Version                Repository      Size

================================================================================

Installing:

memcached           i686           1.4.4-3.el6            base            67 k

Transaction Summary

================================================================================

Install       1 Package(s)           只安装一个包

Upgrade       0 Package(s)         没有更新包

Total download size: 67 k             下载需要67k

Installed size: 145 k                  安装需要145k

Is this ok [y/N]: y                    是否下载安装=> yes

Downloading Packages:

memcached-1.4.4-3.el6.i686.rpm                           |  67 kB     00:00     

warning: rpmts_HdrFromFdno: Header V3 RSA/SHA256 Signature, key ID c105b9de: NOKEY base/gpgkey                                              | 3.3 kB     00:00 ...

Importing GPG key 0xC105B9DE "CentOS-6 Key (CentOS 6 Official Signing Key) <[email protected]>" from /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6               会验证密钥这步

Is this ok [y/N]: y

Running rpm_check_debug

Running Transaction Test

Transaction Test Succeeded

Running Transaction

Warning: RPMDB altered outside of yum.

  Installing     : memcached-1.4.4-3.el6.i686                                                                                                                       1/1

Installed:

  memcached.i686 0:1.4.4-3.el6                                                                                                                                          

Complete!                          memcached安装完成

2.启动memcached服务

[root@h4 ~]# cd /etc/rc.d/init.d/        进入开机启动服务目录,找到memcached启动脚本

[root@h4 init.d]# ll | grep memcached

-rwxr-xr-x. 1 root root 1635  5月 26 201t root memcached   恩 我们找到啦

[root@h4 init.d]# ./memcached start     我们启动memcached服务,系统是中文版的比较好看

正在启动 memcached:              [确定

3.查看memcached进程

进程树查看

[root@h4 init.d]# pstree –G            -G 如果你使用远程连接,需要加-G,否则乱码

[root@h4 init.d]# pstree               本地连接就不用加

……

├─memcached───5*[{memcached}] 已经启动1个memcached进程(其中包括5个线程)

……

进程过滤法查看

[root@h4 init.d]# ps aux | grep memcached

495       9979  0.0  0.1  58132   868 ?        Ssl  16:03   0:00 memcached -d -p 11211 -u memcached -m 64 -c 1024 -P /var/run/memcached/memcached.pid

选项解释:

-d    后台运行memcached

-p    默认端口号11211

-u    启动用户,安装完memcached后会自动建立一个叫“memcached”用户,非登录模式

[root@h4 init.d]# cat /etc/passwd

memcached:x:495:489:Memcached daemon:/var/run/memcached:/sbin/nologin

-m   memcached参数,指用多少内存啊什么的

-c

4.连接memcached并测试

[root@h4 init.d]# telnet localhost 11211

-bash: telnet: command not found           找不到这个命令,怎么回事,原来没有安装

telnet-server-1.2-134.22.i586.rpm包,默认是没有telnet server端包的需要手动安装

[root@h4 init.d]# rpm -qa | grep telnet 检查一下如果没有安装请先安装telnet server= telnet-server-1.2-134.22.i586.rpm (只安装server端就可以了,不用安装client)

我们可以从网上下载也可以,在ISO光盘里面找到

[root@h4 ~]# rpm -ivh telnet-server-1.2-134.22.i586.rpm

warning: telnet-server-1.2-134.22.i586.rpm: Header V3 RSA/SHA256 Signature, key ID 307e3d54: NOKEY

Preparing...                ########################################### [100%]

   1:telnet-server          ########################################### [100%]

[root@h4 ~]# rpm -qa | grep telnet             再次检查已经有了

telnet-server-1.2-134.22.i586

[root@h4 ~]# chkconfig telnet on               设置开机启动telnet服务

[root@h4 sbin]# /etc/init.d/xinetd restart        好么连xinetd都没有安装,重新安装一下

-bash: /etc/init.d/xinetd:没有那个文件和目录

[root@h4 ~]# rpm -ivh xinetd-2.3.14-29.el6.i686.rpm

Preparing...                ########################################### [100%]

   1:xinetd                 ########################################### [100%]

[root@h4 init.d]# rpm -qa | grep xinetd          检查xinetd包已经安装完成

xinetd-2.3.14-29.el6.i686

[root@h4 init.d]# chkconfig --add xinetd              添加xinetd服务到开机启动

[root@h4 init.d]# chkconfig xinetd on                设置开机启动

[root@h4 init.d]# chkconfig -add telnet               添加telnet服务到开机启动

[root@h4 init.d]# chkconfig telnet on                 设置开机启动

[root@h4 init.d]# chkconfig --list | grep xinetd         

xinetd   0:关闭  1:关闭  2:启动  3:启动  4:启动  5:启动  6:关闭

[root@h4 init.d]# chkconfig --list | grep telnet

telnet:           启动

[root@h4 init.d]# /etc/init.d/xinetd restart            启动xinetd服务

由于telnet服务也是由xinetd守护的,所以安装完telnet-server,要启动telnet服务就必须重新启动xinetd

我有一个重大失误,在此进行检讨,我们安装telnet客户端导致

[root@h4 ~]# telnet 127.0.0.1

-bash: telnet: command not found      导致找不到命令

如果安装

[root@h4 ~]# which telnet

/usr/bin/telnet                      会显示命令路径

注:服务端 只负责接收  客户端负责发起,所以我们2个都要安装

[root@h4 ~]# rpm -ivh telnet-0.17-46.el6.i686.rpm

Preparing...                ########################################### [100%]

   1:telnet                 ########################################### [100%]

[root@h4 ~]# telnet localhost         测试一下现在telnet正常了,没有问题了

Trying 127.0.0.1...

Connected to localhost.

Escape character is '^]'.

CentOS Linux release 6.0 (Final)

Kernel 2.6.32-71.el6.i686 on an i686

login: leo

Password:

用yum安装方式,比较自动,比较方便

[root@h4 xinetd.d]# yum provides */telnet        这个是查看哪些RPM包提供了telnet这个文件

Loaded plugins: fastestmirror, refresh-packagekit

Loading mirror speeds from cached hostfile

* base: mirrors.btte.net

* extras: mirrors.btte.net

* updates: mirrors.btte.net

开始测试memcached

[root@h4 init.d]# telnet 127.0.0.1 11211

Trying 127.0.0.1...

Connected to 127.0.0.1.

Escape character is '^]'.

输入key-values对

set leonarding 0 0 12              

liusheng

STORED

输出key-values对

get leonarding

VALUE leonarding 0 12

liusheng

END

语法解释: set   key  flag  expires  byte

Flag :是否压缩数据  0  不压缩  1压缩

Expires:过期时间,单位秒(超过这个时间数据就失效),最大保留30天,设置为永久的也会在这个时间过期,0代表永久

Byte:指定value的字节数,注意字节匹配精确 例hello 字节数是5  leo 字节数是3

Quit:退出memcached命令

Connection closed by foreign host.                 这是退出

[root@h4 init.d]# telnet localhost 11211            这种方式也可以

[root@h4 init.d]# telnet 192.168.2.107 11211        这种方式也可以

Trying 127.0.0.1...

Connected to localhost.

Escape character is '^]'.

增加values值

set counter 0 0 1          输入key-values对

1

STORED

incr counter 1            增加values值 1+1=2

2

incr counter 2            2+2=4

4

get counter

VALUE counter 0 1

4                       最后value=4

END

删除values值

delete counter            删除values值,就是删除key-values对

DELETED

get counter              看现在没有了values

END

追加values值

set leo 0 0 3   

leo                     原来values值=leo

STORED

append leo 0 0 7

narding                 追加的values值=narding

STORED

get leo

VALUE leo 0 10

Leonarding              完整values值=leoanrding

END

删除所有key-values对   

flush_all

OK

get leo                  看所有键值对都被删除了

END

get counter

END

#######################################################################################################################################

 

repcached高可用性

repcached:全称 replication cached是由日本人发明的memcached的高可用性技术,简称复制缓冲区技术。场景用在当有一台服务器当掉时候,会有另一台服务器来接管它,并且这两台服务器的内容是一模一样的,我们就不需要在去数据库拿数据了。

repcached架构:一个主memcached 配一个备memcached,一一对应作冗余

三、repcached安装部署

1.安装libevent-devel    这个包是编译repcached程序所依赖的包

你也可以从网上下载后->tar zxvf libevent-2.0.17-stable.tar.gz 网上有很多,注意依赖关系和编译

我们使用yum方式来安装

[root@h4 init.d]# yum install libevent-devel

Loaded plugins: fastestmirror, refresh-packagekit

Loading mirror speeds from cached hostfile

* base: mirrors.ta139.com

* extras: mirrors.ta139.com

* updates: mirrors.ta139.com

Setting up Install Process

Resolving Dependencies

--> Running transaction check

---> Package libevent-devel.i686 0:1.4.13-4.el6 set to be updated

--> Processing Dependency: libevent-headers = 1.4.13-4.el6 for package: libevent-devel-1.4.13-4.el6.i686

--> Processing Dependency: libevent-doc = 1.4.13-4.el6 for package: libevent-devel-1.4.13-4.el6.i686

--> Processing Dependency: libevent = 1.4.13-4.el6 for package: libevent-devel-1.4.13-4.el6.i686

--> Running transaction check

---> Package libevent.i686 0:1.4.13-4.el6 set to be updated

---> Package libevent-doc.noarch 0:1.4.13-4.el6 set to be updated

---> Package libevent-headers.noarch 0:1.4.13-4.el6 set to be updated

--> Finished Dependency Resolution

Dependencies Resolved            有三个依赖包需要先安装

=======================================================================================================

Package                                       Arch                                Version                                     Repository                         Size

=======================================================================================================

Installing:

libevent-devel                                i686                                1.4.13-4.el6                                base                               71 k

Installing for dependencies:

libevent-doc                                  noarch                              1.4.13-4.el6                                base                              194 k

libevent-headers                              noarch                              1.4.13-4.el6                                base                               30 k

Updating for dependencies:

libevent                                      i686                                1.4.13-4.el6                                base                               67 k


 

Transaction Summary

=======================================================================================================

Install       3 Package(s)

Upgrade       1 Package(s)

Total download size: 362 k

Is this ok [y/N]:y

Downloading Packages:

(1/4): libevent-1.4.13-4.el6.i686.rpm                                                                                                           |  467 B     00:00     

http://mirrors.ta139.com/centos/6.3/os/i386/Packages/libevent-1.4.13-4.el6.i686.rpm: [Errno -1] Package does not match intended download. Suggestion: run yum clean metadata

Trying other mirror.

(1/4): libevent-1.4.13-4.el6.i686.rpm                                                                                                           |  67 kB     00:00     

http://mirrors.btte.net/centos/6.3/os/i386/Packages/libevent-1.4.13-4.el6.i686.rpm: [Errno -1] Package does not match intended download. Suggestion: run yum clean metadata

Trying other mirror.

(1/4): libevent-1.4.13-4.el6.i686.rpm                                                                                                           |  67 kB     00:00     

(2/4): libevent-devel-1.4.13-4.el6.i686.rpm                                                                                                     |  71 kB     00:00     

(3/4): libevent-doc-1.4.13-4.el6.noarch.rpm                                                                                                     | 194 kB     00:00     

(4/4): libevent-headers-1.4.13-4.el6.noarch.rpm                                                                                                 |  30 kB     00:00     

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------

Total                                                                                                                                  409 kB/s | 362 kB     00:00     

Running rpm_check_debug

Running Transaction Test

Transaction Test Succeeded

Running Transaction

Warning: RPMDB altered outside of yum.

  Updating       : libevent-1.4.13-4.el6.i686                                                                                                                      1/5

  Installing     : libevent-headers-1.4.13-4.el6.noarch                                                                                                            2/5

  Installing     : libevent-devel-1.4.13-4.el6.i686                                                                                                                3/5

  Installing     : libevent-doc-1.4.13-4.el6.noarch                                                                                                                4/5

  Cleanup        : libevent-1.4.13-1.el6.i686                                                                                                                      5/5

Installed:

  libevent-devel.i686 0:1.4.13-4.el6                                                                                                                                   

Dependency Installed:

  libevent-doc.noarch 0:1.4.13-4.el6                                               libevent-headers.noarch 0:1.4.13-4.el6                                             

Dependency Updated:

  libevent.i686 0:1.4.13-4.el6                                                                                                                                         

Complete!

使用yum安装不用在做编译工作

2.查看我们是否安装成功libevent

[root@h4 init.d]# cd /usr/lib

[root@h4 lib]# ll | grep libevent

lrwxrwxrwx.  1 root root       21  1月  4 20:09 libevent-1.4.so.2 -> libevent-1.4.so.2.1.3

-rwxr-xr-x.  1 root root   108948  6月 22 2012 libevent-1.4.so.2.1.3

-rw-r--r--.  1 root root   133014  6月 22 2012 libevent.a

lrwxrwxrwx.  1 root root       26  1月  4 20:09 libevent_core-1.4.so.2 -> libevent_core-1.4.so.2.1.3

-rwxr-xr-x.  1 root root    37080  6月 22 2012 libevent_core-1.4.so.2.1.3

-rw-r--r--.  1 root root    47248  6月 22 2012 libevent_core.a

lrwxrwxrwx.  1 root root       26  1月  4 20:09 libevent_core.so -> libevent_core-1.4.so.2.1.3

lrwxrwxrwx.  1 root root       27  1月  4 20:09 libevent_extra-1.4.so.2 -> libevent_extra-1.4.so.2.1.3

-rwxr-xr-x.  1 root root    84228  6月 22 2012 libevent_extra-1.4.so.2.1.3

-rw-r--r--.  1 root root       103130  6月  22 2012  libevent_extra.a

lrwxrwxrwx.  1 root root       27  1月  4 20:09  libevent_extra.so -> libevent_extra-1.4.so.2.1.3

lrwxrwxrwx.  1 root root       21  1月  4 20:09  libevent.so -> libevent-1.4.so.2.1.3

3.先下载memcached-1.2.8-repcached-2.2.tar.gz包(这个包本身自带memcached模块)

[root@h4 ~]# mkdir memcached        建立一个目录把包下载到目录中

[root@h4 memcached]#

wget http://downloads.sourceforge.net ... epcached-2.2.tar.gz

这个sourceforge网站下载时好时坏,可能下载不了,我也是好不容易得来的,我把它放在

http://f.dataguru.cn/thread-46524-1-1.html 有需要的筒子们赶紧下载哦

4.解tar包

[root@h4 memcached]# tar -zxvf memcached-1.2.8-repcached-2.2.tar.gz

[root@h4 memcached]# cd memcached-1.2.8-repcached-2.2          进入目录进行编译

5.编译三部曲

第一步 编译好后产生makefile文件

[root@h4 memcached-1.2.8-repcached-2.2]# ./configure --enable-replication --program-transform-name=s/memcached/repcached/ --with-libevent=/usr/local/libevent

checking build system type... i686-pc-linux-gnu

checking host system type... i686-pc-linux-gnu

checking target system type... i686-pc-linux-gnu

checking for a BSD-compatible install... /usr/bin/install -c

checking whether build environment is sane... yes

checking for a thread-safe mkdir -p... /bin/mkdir -p

checking for gawk... gawk

checking whether make sets $(MAKE)... yes

checking for gcc... gcc

checking for C compiler default output file name... a.out

checking whether the C compiler works... yes

checking whether we are cross compiling... no

checking for suffix of executables...

checking for suffix of object files... o

checking whether we are using the GNU C compiler... yes

checking whether gcc accepts -g... yes

checking for gcc option to accept ISO C89... none needed

checking for style of include used by make... GNU

checking dependency style of gcc... gcc3

checking whether gcc and cc understand -c and -o together... yes

checking for a BSD-compatible install... /usr/bin/install -c

checking for libevent directory... (system)

checking for library containing socket... none required

checking for library containing gethostbyname... none required

checking for library containing mallinfo... none required

checking for daemon... yes

checking how to run the C preprocessor... gcc -E

checking for grep that handles long lines and -e... /bin/grep

checking for egrep... /bin/grep -E

checking for ANSI C header files... yes

checking for sys/types.h... yes

checking for sys/stat.h... yes

checking for stdlib.h... yes

checking for string.h... yes

checking for memory.h... yes

checking for strings.h... yes

checking for inttypes.h... yes

checking for stdint.h... yes

checking for unistd.h... yes

checking for stdbool.h that conforms to C99... yes

checking for _Bool... yes

checking for an ANSI C-conforming const... yes

checking malloc.h usability... yes

checking malloc.h presence... yes

checking for malloc.h... yes

checking for struct mallinfo.arena... yes

checking for socklen_t... yes

checking for endianness... little

checking for mlockall... yes

checking for getpagesizes... no

checking for memcntl... no

configure: creating ./config.status

config.status: creating Makefile

config.status: creating doc/Makefile

config.status: creating config.h

config.status: executing depfiles commands

[root@h4 memcached-1.2.8-repcached-2.2]# ll | grep Makefile

-rw-r--r--. 1 root root  34856  1月  4  20:53 Makefile       这个文件已经产生

第二步

[root@h4 memcached-1.2.8-repcached-2.2]# make

make  all-recursive

make[1]: Entering directory `/root/memcached/memcached-1.2.8-repcached-2.2'

Making all in doc

。。。。。。。。。。。。。。。省略

第三步

[root@h4 memcached-1.2.8-repcached-2.2]# make install

Making install in doc

make[1]: Entering directory `/root/memcached/memcached-1.2.8-repcached-2.2/doc'

make[2]: Entering directory `/root/memcached/memcached-1.2.8-repcached-2.2/doc'

make[2]: Nothing to be done for `install-exec-am'.

test -z "/usr/local/share/man/man1" || /bin/mkdir -p "/usr/local/share/man/man1"

/usr/bin/install -c -m 644 './memcached.1' '/usr/local/share/man/man1/repcached.1'

make[2]: Leaving directory `/root/memcached/memcached-1.2.8-repcached-2.2/doc'

make[1]: Leaving directory `/root/memcached/memcached-1.2.8-repcached-2.2/doc'

make[1]: Entering directory `/root/memcached/memcached-1.2.8-repcached-2.2'

make[2]: Entering directory `/root/memcached/memcached-1.2.8-repcached-2.2'

test -z "/usr/local/bin" || /bin/mkdir -p "/usr/local/bin"

  /usr/bin/install -c 'memcached' '/usr/local/bin/repcached'

  /usr/bin/install -c 'memcached-debug' '/usr/local/bin/repcached-debug'

make[2]: Nothing to be done for `install-data-am'.

make[2]: Leaving directory `/root/memcached/memcached-1.2.8-repcached-2.2'

make[1]: Leaving directory `/root/memcached/memcached-1.2.8-repcached-2.2'

到此完成编译任务

6.启动repcached

我们先把原来启动的memcached全部终止,别影响后面repcached启动

[root@h4 ~]# killall memcached         全部终止

[root@h4 ~]# ps aux|grep memcached   已经生效

root     10895  0.0  0.1   5932   744 pts/1    S+   21:04   0:00 grep memcached

[root@h4 memcached-1.2.8-repcached-2.2]# su – leo   切换个用户,不能使用root身份运行

主memcached

[leo@h4 ~]$ /usr/local/bin/repcached -p 11211 -v -d

[leo@h4 bin]$ replication: listen

备memcached

[leo@h4 bin]$ /usr/local/bin/repcached -p 11212 -x localhost -v -d

[leo@h4 bin]$ replication: connect (peer=127.0.0.1:11212)

replication: marugoto copying

replication: accept

replication: start

参数解释:

-d : 后台运行memcached进程

-p : 默认监听端口11211  11212

-x : 监听高可用机器,如果是监听默认端口不用写端口号,localhost就是监听本机

作用:第二个repcached监听第一个repcached如果有问题就接管

7.检查repcached进程

[leo@h4 bin]$ pstree                         启动11211端口和11212端口repcached进程

├2*[repcached]

[leo@h4 bin]$ ps aux | grep repcached

leo      10953  0.0  0.1   2892   720 ?        Ss   08:51   0:00 /usr/local/bin/repcached -p 11211 -v -d

leo      11128  0.0  0.1   2972   720 ?        Ss   08:56   0:00 /usr/local/bin/repcached -p 11212 -x localhost -v –d

现在主备repcached已经全部都启动了,下面开始做repcached复制实验了

8. repcached复制实验

11211 -> replication -> 11212

[leo@h4 bin]$ telnet 192.168.2.107 11211

Trying 192.168.2.107...

Connected to 192.168.2.107.

Escape character is '^]'.

set hello 0 0 5              输入一个hello-world对   5指的是value字节数即world字节数

world

STORED

get hello                  输出一个hello-world对

VALUE hello 0 5

world

END

set liu 0 0 5                输入一个liu-sheng对     5指的是value字节数即sheng字节数

sheng

STORED

get liu                    输入一个liu-sheng对

VALUE liu 0 5

sheng

END

Quit                     退出

Connection closed by foreign host

我们在去11212 repcached 服务中看看是不是同步过去了

[leo@h4 bin]$ telnet 192.168.2.107 11212          连接11212

Trying 192.168.2.107...

Connected to 192.168.2.107.

Escape character is '^]'.

get hello

VALUE hello 0 5

world

END

get liu

VALUE liu 0 5

sheng

END

quit

Connection closed by foreign host

看在11211中设置的key-value对已经成功复制到11212中

11212 -> replication -> 11211  反向复制

[leo@h4 bin]$ telnet 192.168.2.107 11212           连接11212

Trying 192.168.2.107...

Connected to 192.168.2.107.

Escape character is '^]'.

set liu2 0 0 6                  输入一个liu2-sheng2对     6指的是value字节数即sheng2字节数

sheng2

STORED

quit

Connection closed by foreign host.

[leo@h4 bin]$ telnet 192.168.2.107 11211            再连接11211

Trying 192.168.2.107...

Connected to 192.168.2.107.

Escape character is '^]'.

get liu2                     

VALUE liu2 0 6

sheng2

END

在11212中设置的key-value对已经成功复制到11211中

9.监控repcached

stats cachedump 1 10      

ITEM liu2 [6 b; 1357304711 s]

ITEM liu [5 b; 1357304711 s]

ITEM hello [5 b; 1357304711 s]

END

现在缓存层中有3个条目,后面的6 5 5数字代表对应value字节数

stats items

STAT items:1:number 3

STAT items:1:age 1585

STAT items:1:evicted 0

STAT items:1:evicted_time 0

STAT items:1:outofmemory 0

STAT items:1:tailrepairs 0

END

条目的状态

小结:repcached高可用测试已经完成,完美在2个repcached缓存间同步复制数据,这样就可以一个服务器当掉的话另一个马上来接管,对应用透明,这就是memcached的HA机制。


 

Leonarding
2013.1.6
天津&winter
分享技术~成就梦想
Blog:www.leonarding.com 

你可能感兴趣的:(memcached,键值存储数据库,缓存层)