学习memcached的安装和java通讯

memcache需要libevent进行网络的通讯才能正常工作,所以安装memcache之前需要首先安装libevent. libevent可以从这儿下载,memcache需要从google code下载。
现在万事具备,开始安装的基本过程,如下所示:

#yum install gcc  //确认gcc已经安装,可以gcc -v确认

#wget http://monkey.org/~provos/libevent-1.4.5-stable.tar.gz  //下载最新的稳定版本
#tar xvzf libevent-1.4.4-stable.tar.gz  //解压缩
#cd libevent-1.4.4-stable 
#./configure -prefix=/usr/local/libevent //开始编译
#make
#make install

接着安装memcache.

#cd /home/mysoft/
#tar -zxvf  memcached-1.4.5.tar.gz
#cd  memcached-1.5.0
#./configure --prefix=/usr/local/memcached --with-libevent=/usr/
#make #make install
#ls -al /usr/local/memcached/bin //验证安装

如果没有问题,现在就可以正常启动memcached了,命令如下:

/usr/local/memcached/bin/memcached -d -m 100 -u root -l 192.168.1.101 -p 11211 -c 256 -P /tmp/memcached.pid 

-d选项是启动一个守护进程,
-m是分配给Memcache使用的内存数量,单位是MB,我这里是100MB,
-u是运行Memcache的用户,我这里是root,
-l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址192.168.1.100,
-p是设置Memcache监听的端口,我这里设置了11211,最好是1024以上的端口,我们这里统一使用11211-c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照自己服务器的负载量来设定。
-P是设置保存Memcache的pid文件,我这里是保存在/tmp/memcached.pid
常见的启动失败信息有:
AA.启动时找不到libevent库
memcached: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory

解决办法1:将libevent库所在路径加入LIBRARY_PATH,在/etc/profile中加入
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/libevent/lib

解决办法2:
ln -s /libevent安装路径/libevent/lib/libevent-1.3b.so.1 /usr/lib/libevent-1.3c.so.1
详细的处理过程如下:
>locate libevent-1.4.so.2
libevent-1.4.so: /usr/local/lib/libevent-1.4.so.2

> ldd /usr/local/bin/memcached
linux-gate.so.1 => (0xb7fa4000)
libevent-1.4.so.2 => not found
libpthread.so.0 => /lib/libpthread.so.0 (0x0086e000)
libc.so.6 => /lib/libc.so.6 (0x006f7000)
/lib/ld-linux.so.2 (0x006d9000)

> LD_DEBUG=libs ./memcached -v
找到默认路径 /usr/lib/
>ln -s /usr/local/lib/libevent-1.4.so.2 /usr/lib/libevent-1.4.so.2

>ldd /usr/local/bin/memcached
linux-gate.so.1 => (0xb7ffd000)
libevent-1.4.so.2 => /usr/lib/libevent-1.4.so.2 (0xb7fdc000)
libpthread.so.0 => /lib/libpthread.so.0 (0x0086e000)
libc.so.6 => /lib/libc.so.6 (0x006f7000)
libnsl.so.1 => /lib/libnsl.so.1 (0x009f8000)
librt.so.1 => /lib/librt.so.1 (0×00887000)
libresolv.so.2 => /lib/libresolv.so.2 (0x00b29000)
/lib/ld-linux.so.2 (0x006d9000)
收工
AB.第二个可能的问题是编译memcache期间出现的,解决方案可以参考这儿
或者 在./configure 时加入参数–build=i686-pc-linux-gnu
AC.如果客户端连接不上,可能是服务器防火墙的原因,选择关闭或者增加相应的iptables文件如下:
#永久性生效,重启后不会复原
开启: chkconfig iptables on
关闭: chkconfig iptables off
#即时生效,重启后复原
开启: service iptables start
关闭: service iptables stop
#修改/etc/sysconfig/iptables文件,
添加-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 11211 -j ACCEPT

使用的方式可以有很多种,常见的语言api通过官方网站都能找到,比如php的参考这儿,需要memcached插件
Java的可以选择这个spymemcached或者java memcached,其他语言的可以从这个列表中查找。

假期前奏

又是一个忙碌的周末,LP跟公司去葫芦岛腐败去了,自己一个人在家。事情安排的不少,可以说是马不停蹄。闹钟定在7点钟,早上起来,直接奔朝阳公园,参加体检,尽管可以到10月中旬,但是后面的基本上周末都没时间了,所以尽早去的好,不过跟下雨有点关系吧,不不是很多,哇哈哈,一个小时多就搞定了,早饭还不错,比去年的强点,多了个火腿肠。
嗓子断断续续疼了2个星期了,貌似吃西瓜会好点,但是不能总吃啊,现在都一块多一斤了,还是多喝水吧。下午打扫卫生,准备已经姐姐一家的到来。
上午安装了油烟机和灶具,算了下,基本上装完了,自己到东方家园提水盆,然后22号统一打电话安装,包括灯具们,这下子就完整了,然后正好打扫下卫生,家具进场,然后就可以入住了,期待一下。
在家里捣鼓了下Maven,居然跑步起来,气死我了,晚上继续搞。
单位发中秋节的“福利”了,50元的味多美券一张,总体上来讲还是不错的,假期的面包这下子不用操心了。

记录个nginx的细节

今天配置了一个网站,因为直接使用的别人的代码,也没仔细琢磨,开始一切正常,等到后台,发现悲剧了,好像是404的症状,但是又不是404,直接访问能显示,于是开始换到webserver上来想办法,百度了半天,因为不知道怎么描述,结果可想而知,又看了下网站的模板,发现都是用iframe实现的,以为是nginx限制了他的请求,以为是fastcgi模式配置的问题,把timeout时间调大,发现没效果,拿firebug看,发现结果是有的,但是不显示。开始用nginx iframe 关键字搜,有点端倪,大概是gzip作怪。立即gzip off,然后刷新了下页面果然好了,害人不浅啊。
记录下配置

server
{
listen 80;
server_name nav.fhand.com www.fhand.com;
index index.html index.htm index.php;
root /data0/htdocs/nav.fhand.com;

gzip off;

location ~ .*.(php|php5)?$
{
#fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fcgi.conf;
}

location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}

location ~ .*.(js|css)?$
{
expires 1h;
}

log_format nav.fhand.com '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $http_x_forwarded_for';
access_log /data1/logs/nav.fhand.com.log nav.fhand.com;
}

烤箱来了

盼星星盼月亮,等了一个星期,终于快递给送货了,不错。以后可以自己烤各种好吃的了,哇哈哈。
晚上回家捣腾去。happy