安装repcached memcached
分别在两台服务器中安装libevent与repcachedmemcached
一、安装libevent
1.先用:ls-al/usr/lib|greplibevent查看是否已安装,如果已安装且版本低于1.3,则先通过:rpm-elibevent—nodeps进行卸载。
2.下载libevent安装包:libevent-1.4.13-stable.tar.gz,然后解压。
3.切换到解压后的libevent主目录:cdlibevent-1.4.13-stable
4.依次执行:
./configure --prefix=/usr (或 ./configure --program-prefix=/usr) make make install
注意:
1)执行makeinstall时可能需要root权限。
2)libevent会安装到/usr/lib下。
5.测试libevent是否安装成功:ls-al/usr/lib|greplibevent
出现类似下图结果则表示安装成功:
lrwxrwxrwx. 1 root root 21 Jun 17 00:35 libevent-1.4.so.2 -> libevent-1.4.so.2.1.3 -rwxr-xr-x. 1 root root 373214 Jun 17 00:35 libevent-1.4.so.2.1.3 -rw-r--r--. 1 root root 603890 Jun 17 00:35 libevent.a lrwxrwxrwx. 1 root root 26 Jun 17 00:35 libevent_core-1.4.so.2 -> libevent_core-1.4.so.2.1.3 -rwxr-xr-x. 1 root root 137329 Jun 17 00:35 libevent_core-1.4.so.2.1.3 -rw-r--r--. 1 root root 228968 Jun 17 00:35 libevent_core.a -rwxr-xr-x. 1 root root 860 Jun 17 00:35 libevent_core.la lrwxrwxrwx. 1 root root 26 Jun 17 00:35 libevent_core.so -> libevent_core-1.4.so.2.1.3 lrwxrwxrwx. 1 root root 27 Jun 17 00:35 libevent_extra-1.4.so.2 -> libevent_extra-1.4.so.2.1.3 -rwxr-xr-x. 1 root root 295868 Jun 17 00:35 libevent_extra-1.4.so.2.1.3 -rw-r--r--. 1 root root 469074 Jun 17 00:35 libevent_extra.a -rwxr-xr-x. 1 root root 867 Jun 17 00:35 libevent_extra.la lrwxrwxrwx. 1 root root 27 Jun 17 00:35 libevent_extra.so -> libevent_extra-1.4.so.2.1.3 -rwxr-xr-x. 1 root root 825 Jun 17 00:35 libevent.la lrwxrwxrwx. 1 root root 21 Jun 17 00:35 libevent.so -> libevent-1.4.so.2.1.3
6.如果libevent的安装目录为/usr/local/lib下,则还需要建立libevent-1.4.so.2到/usr/lib的软连接,这样其他程序运行时才能找到libevent库:ln-s/usr/local/lib/libevent-1.4.so.2/usr/lib/libevent-1.4.so.2
二、安装repcachedmemcached
1.下载repcached安装包:memcached-1.2.8-repcached-2.2.1.tar.gz,然后解压。
2.切换到解压后的repcachedmemcached主目录:cdmemcached-1.2.8-repcached-2.2.1
3.依次执行:
./configure --enable-replication make make install
4.如果在64位系统中运行memcached可能会出现如下错误:
/usr/local/bin/memcached:errorwhileloadingsharedlibraries:libevent-1.4.so.2:cannotopensharedobjectfile:Nosuchfileordirectory
则使用libs参数调试:
LD_DEBUG=libs/usr/local/bin/memcached-v
可以看到以下输出:
10641: find library=libevent-1.4.so.2 [0]; searching 10641: search cache=/etc/ld.so.cache 10641: search path=/lib64/tls/x86_64:/lib64/tls:/lib64/x86_64:/lib64:/usr/lib64/tls/x86_64:/usr/lib64/tls:/usr/lib64/x86_64:/usr/lib64 (system search path) 10641: trying file=/lib64/tls/x86_64/libevent-1.4.so.2 10641: trying file=/lib64/tls/libevent-1.4.so.2 10641: trying file=/lib64/x86_64/libevent-1.4.so.2 10641: trying file=/lib64/libevent-1.4.so.2 10641: trying file=/usr/lib64/tls/x86_64/libevent-1.4.so.2 10641: trying file=/usr/lib64/tls/libevent-1.4.so.2 10641: trying file=/usr/lib64/x86_64/libevent-1.4.so.2 10641: trying file=/usr/lib64/libevent-1.4.so.2 10641: /usr/local/bin/memcached: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory
可知memcached并没有在/usr/lib中加载libevent-1.4.so.2,而是在/usr/lib64中。
故在/usr/lib64中创建/usr/lib/libevent-1.4.so.2的软链接:
ln-s/usr/lib/libevent-1.4.so.2/usr/lib64/libevent-1.4.so.2
三、验证
1.在第一个服务器执行:
[root@localhost ~]# /usr/local/bin/memcached -u nobody -l 192.168.73.201 -p 22122 -m 64 -x 192.168.73.202 -v replication: connect (peer=192.168.73.202:11212) replication: marugoto copying replication: close replication: listen
2.在第二个服务器执行:
[root@localhost ~]# /usr/local/bin/memcached -u nobody -l 192.168.73.202 -p 22122 -m 64 -x 192.168.73.201 -v replication: connect (peer=192.168.73.201:11212) replication: marugoto copying replication: start
这时在第一个服务器中会输出:
replication:accept
3.在第一个服务器中设置keyvalue对:
[root@localhost ~]# telnet 192.168.73.201 22122 Trying 192.168.73.201... Connected to 192.168.73.201. Escape character is '^]'. set hey 0 0 4 dude STORED get hey VALUE hey 0 4 dude END quit Connection closed by foreign host
4.在第二个服务器中取出keyvalue对:
[root@localhost ~]# telnet 192.168.73.202 22122 Trying 192.168.73.202... Connected to 192.168.73.202. Escape character is '^]'. get hey VALUE hello 0 4 dude END quit Connection closed by foreign host.
5.好了,repcachedmemcached已经安装配置完成。
另外,安装telnet客户端的命令是:
yum-yinstalltelnet
#后台运行:
/usr/local/bin/memcached-d-m128-uroot-p11211-P/tmp/memcached.pid
#结束memcache进程
kill`cat/tmp/memcached.pid`
参数:
-d启动守护进程(后台运行)
-m分配给memcache使用的内存,单位是MB
-u运行memcached的用户
-l监听的服务器IP
-p监听的服务器端口,默认是11211
-c最大运行的并发连接数,默认是1024
-P(大写)保存Memcache的pid文件,后面跟路径