Memcached客户端01:XMemcached
版本选择:2.0.0
XMemcached:https://github.com/killme2008/xmemcached
XMemcached 中文api:http://blog.csdn.net/yangkai_hudong/article/details/38017553
maven依赖:
<!-- xmemcached --> <dependency> <groupId>com.googlecode.xmemcached</groupId> <artifactId>xmemcached</artifactId> <version>2.0.0</version> </dependency>
XMemcached也使用得比较广泛,而且有较详细的中文API文档,具有如下特点:高性 能、支持完整的协议、支持客户端分布、允许设置节点权重、动态增删节点、支持JMX、与Spring框架和Hibernate-memcached的集 成、客户端连接池、可扩展性好等。
版本(pook):XMemcached封装JAR,分布式,权重配置(注意区分get/getReal,依赖dom4j、common-log、slf等JAR包)
....
版本(个人重构版):XMemcached工具类,分布式,权重配置;【分片、主从】
....
所需JAR包如下:
xmemcached-1.3.5.jar
commons-logging-1.1.1.jar
log4j-1.2.12.jar
slf4j-api-1.6.6.jar
slf4j-log4j12-1.6.6.jar
Memcached客户端02:Memcached-Java-Client
由于memcached client for java发布了新版本,性能上有所提高,并且运行稳定,所以建议使用memcached client for java。
2.6.1版本支持apache-commoms-pool作为连接池。 支持权重配置。
版本(lvmama):Memcached-Java-Client工具类,分布式,无权重配置
....
版本03:Memcached-Java-Client工具类,分布式,权重配置(新版本支持权重)
....
....
新版本官方实例:Memcached-Java-Client,支分布式,权重配置
....对比测试:
....
实际测试,单线程,循环set/get 50W次耗时:
Memcached-Java-Client方式:checkMemCachedClient cost:7901
XMemcached方式:checkXmemcached cost:16072
XMemcached封装方式:checkMyXmemcachedcost:16578
CentOS下安装memcached
yum版本比较新,也比较稳定,可以直接采用yum安装memcached
1. 查找Memcached
# yum search memcached
# yum list|grep memcached
CentOS下使用yum快速安装memcached-linux服务器应用-黑吧安全网.htm
2. 安装第三方软件库(可选)
标准的CentOS5软件仓库里面是没有memcache相应的包的,所以,我们的第一步就是导入第三方软件仓库,这里推荐的是RpmForge(RpmForge库现在已经拥有超过10000种的CentOS的软件包,被CentOS社区认为是最安全也是最稳定的一个第三方软件库),安装方法如下:
# wget http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.5.2-2.rf.src.rpm
# rpm -ivh rpmforge-release-0.5.2-2.rf.src.rpm
3.安装Memcached
yum安装方式一:
# yum -y install memcached
源码安装方式二:
# yum -y install gcc
# yum -y install gcc-c++
然后上传centos,进行给予权限,然后解压
# tar xzvf libevent-2.0.21-stable.tar.gz ##解压
# cd libevent-2.0.21-stable
# ./configure --prefix=/usr/local/libevent/
# make && make install
# ln -s /usr/local/libevent/lib/libevent-1.4.so.2 /lib/libevent-1.4.so.2
configure文件中的默认prefix是/usr/local,因此,安装完成之后,你可以在/usr/local/bin 和 /usr/local/lib 下找到libevent的相关文件
# tar xzvf memcached-1.4.24.tar.gz
# cd memcached-1.4.24
# ./configure --prefix=/usr/local/memcached/ --with-libevent=/usr/local/libevent/
# make && make install
安装结果(ls -al /usr/local/bin/memcached)
配置自启动脚本:
# vi /etc/init.d/memcached
# chmod +x /etc/init.d/memcached
# chkconfig --add memcached
# chkconfig --level 235 memcached on
# service memcached start
#########################
#!/bin/bash
# author:kuangl
# date:2013-05-30
# description: Starts and stops the Memcached services.
# pidfile: /tmp/memcached1.pid
# config: /usr/local/memcached
# chkconfig: - 55 45
# source function library
. /etc/rc.d/init.d/functions
memcached="/usr/local/memcached/bin/memcached"
pidfile="/tmp/memcached1.pid"
PORT=11211
USER=root
MAXCONN=1024
CACHESIZE=64
OPTIONS=""
start()
{
echo "Starting memcached:"
daemon $memcached -d -p $PORT -u $USER -m $CACHESIZE -c $MAXCONN -P $pidfile $OPTIONS
}
stop()
{
echo "Shutting down memcached"
killproc memcached
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
sleep 3
start
;;
*)
echo $"Usage: $0 {start|stop|restart}"
exit 1
esac
exit $?
#########################
4.验证安装
# /usr/local/memcached/bin/memcached -d -u root -m 512 -p 11211
启动参数说明:
-d 选项是启动一个守护进程。
-u root 表示启动memcached的用户为root。
-m 是分配给Memcache使用的内存数量,单位是MB,默认64MB。
-p 是设置Memcache的TCP监听的端口,默认为11211
# pgrep memcached
# netstat -tulpn | grep 11211
# ps -ef | grep memcached
# yum install telnet
# telnet 127.0.0.1 11211
yum安装报错:
# vi /etc/resolv.conf
options timeout:1 attempts:1 rotate
nameserver 10.202.72.116
nameserver 10.202.72.118
#nameserver 8.8.8.8
防火墙给给拦住了,蛋疼啊
# service iptables stop
# service iptables start
5. 查看配置文件
# cat /etc/sysconfig/memcached
可以根据情况修改相关配置参数:
#####################
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS=""
###############
6.启动memcached
# /etc/rc.d/init.d/memcached start
7、开机启动
# chkconfig --list memcached
# chkconfig memcached on
或:# vi /etc/rc.local 加入一行 /etc/init.d/nginx start 保存并退出,下次重启会生效。
8、开放防火墙端口:11211
# /sbin/iptables -I INPUT -p tcp --dport 11211 -j ACCEPT
# service iptables status
# /etc/rc.d/init.d/iptables save
9、测试是否安装成功:
telnet 192.168.1.15 11211
set name 0 0 4
jack
get name
ctrl + ]
q
退出
Window下安装memcached
官网(windows编译32位):自个儿去百度
版本(windows编译32位):memcached-win32-1.4.4-14.zip
版本(windows编译64位):http://s3.amazonaws.com/downloads.northscale.com/memcached-win64-1.4.4-14.zip
linux版本可以直接编译,安装;windows版本不太好编译,使用该网站上编译后版本;
windows下安装memcached
1、下载memcached for win32(memcached_en32or64 ),直接解压;
2、cmd进入命令窗口,cd到解压路径;
3、安装命令:解压路径下》memcached.exe -d install;
4、启动服务(计算器,管理,服务,手动启动也可以):》net start memcached(关闭删除,同svn安装);
5、修改默认“端口11211"和"占用最大内存64M”:解压路径下》memcached.exe -p 10000 -m 512 -d start(-p要修的端口,-m要修改的最大内存,单位M);
6、常用命令:
telnet到memcache服务器,如:telnet 192.168.1.120 11211(11211是memcache的默认端口)
stats :查看基本信息
stats items :查看items
get key:(key 为 item后面的字符串即键)
-c :最大同时连接数,默认是1024
-f :块大小增长因子,默认是1.25
-n :最小分配空间,key+value+flags默认是48
-h :显示帮助
END
2、cmd进入命令窗口,cd到解压路径;
3、安装命令:解压路径下》memcached.exe -d install;
4、启动服务(计算器,管理,服务,手动启动也可以):》net start memcached(关闭删除,同svn安装);
5、修改默认“端口11211"和"占用最大内存64M”:解压路径下》memcached.exe -p 10000 -m 512 -d start(-p要修的端口,-m要修改的最大内存,单位M);
6、常用命令:
telnet到memcache服务器,如:telnet 192.168.1.120 11211(11211是memcache的默认端口)
stats :查看基本信息
stats items :查看items
get key:(key 为 item后面的字符串即键)
-c :最大同时连接数,默认是1024
-f :块大小增长因子,默认是1.25
-n :最小分配空间,key+value+flags默认是48
-h :显示帮助
END
然后可以再系统服务中,管理,开机启动
win7 telnet命令无法开启的解决方案(不是内部命令或外部命令)
“控制面板” 一〉“程序” 一〉“打开或关闭windows功能”,在里面你可以看到许多服务项,选择“telnet服务器”和“telnet客户端”确定即可。
安装设置参数
以上的安装和启动都是在默认环境下进行的,在安装时可设置如下参数:
-p 监听的端口
-l 连接的IP地址, 默认是本机
-d start 启动memcached服务
-d restart 重起memcached服务
-d stop|shutdown 关闭正在运行的memcached服务
-d install 安装memcached服务
-d uninstall 卸载memcached服务
-u 以的身份运行 (仅在以root运行的时候有效)
-m 最大内存使用,单位MB。默认64MB
-M 内存耗尽时返回错误,而不是删除项
-c 最大同时连接数,默认是1024
-f 块大小增长因子,默认是1.25
-n 最小分配空间,key+value+flags默认是48
-h 显示帮助
如:“memcached -d install -l 127.0.0.1 -m 1024 -c2048”。
win8(64位)下memcache安装时报错“ failed to install service or service already installed”
net start memcached提示发生系统错误5
解决办法:
1、找到cmd.exe文件(c:windowssystem32cmd.exe)
2、右键cmd.exe以管理员方式运行