1.安装并测试repcached 1.下载memcached-1.2.8-repcached-2.2.1.tar.gz 地址:http:///projects/repcached/files/repcached/2.2.1-1.2.8/ 2. 在server2,server3上分别安装repcached 首先安装libevent,libevent-devel: [root@server2 Share]# rmp -ivh libevent-1.4.13-4.el6.x86_64.rpm [root@server2 Share]# rmp -ivh libevent-devel-1.4.13-4.el6.x86_64.rpm 或者在CentOS下直接运行 yum libevent libevent-devel 安装repcached [root@server3 bin]# ./configure --enable-replication --program-transform-name=s/memcached/repcached/ [root@server3 bin]# make [root@server3 bin]# make install 3.启动repcached 切换到非root用户 [root@server3 bin]# su admin server2 上以master身份运行,server3中以slave身份运行 [admin@server2 ~]$ /usr/local/bin/repcached -p 11211 -v [admin@server2 ~]$ replication: listen [admin@server3 ~]$ /usr/local/bin/repcached -p 11211 -x server2 -v replication: connect (peer=192.168.1.202:11212) replication: marugoto copying replication: start 开启两个终端,分别连接server2,server3的11211端口 [admin@server1 ~]$ telnet server2 11211 Trying 192.168.1.202... Connected to server2. Escape character is '^]'. [admin@server1 ~]$ telnet server3 11211 Trying 192.168.1.203... Connected to server3. Escape character is '^]'. 在server2中设置一个变量aa set aa 0 0 5 bbbbb STORED get aa VALUE aa 0 5 bbbbb END 在server3中查询变量aa get aa VALUE aa 0 5 bbbbb END 在server3中修改aa的值 append aa 0 0 3 ccc STORED get aa VALUE aa 0 8 bbbbbccc END 在server2中查看aa get aa VALUE aa 0 8 bbbbbccc END 在server3中删除aa delete aa DELETED get aa END 在server2中查看aa delete aa NOT_FOUND get aa END 2. Java操作memcached 使用JDBC连接PostGreSQL数据库,查询一段数据并保存在memcached。分别再从memcached和PostGreSQL中查询该段数据,比较二者时间差异。 import com.whalin.MemCached.MemCachedClient; import com.whalin.MemCached.SockIOPool; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.List; public class MemChachedTest { } 运行所得结果: Cost Time of Query from PostGreSQL (ms):25 Cost Time of Get from MemCached (ms):8 -----data from PostGreSQL------ Net-192.168.0.0/24 Windows Net-211.144.207.8/29 Net-10.1.70.0/24 Net-10.1.40.0/24 Net-10.1.30.0/24 Net-10.1.20.0/22 。。。。。。。。。。。。。。。。。。。。。。。。。。。 -----data from MemCached------ Net-192.168.0.0/24 Windows Net-211.144.207.8/29 Net-10.1.70.0/24 Net-10.1.40.0/24 Net-10.1.30.0/24 Net-10.1.20.0/22 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 多运行几次,比较二者消耗时间的差异: Cost Time of Query from PostGreSQL (ms):18 Cost Time of Get from MemCached (ms):8 Cost Time of Query from PostGreSQL (ms):16 Cost Time of Get from MemCached (ms):7 Cost Time of Query from PostGreSQL (ms):20 Cost Time of Get from MemCached (ms):7 可以从PostGreSQL中查询数据所消耗的时间大约是从MemCached中查询的所消耗的两倍。因为数据库表记录比较少,所以性能提升不明显。 |
|