`

linux服务器缓存环境memcached搭建及应用(java)

阅读更多

1.下载memcached服务器端安装文件http://www.danga.com/memcached/download.bml

2.下载libevent-1.4.12-stable.tar.gz,memcached需要用到socked,依赖此安装文件,下载地址:http://www.monkey.org/~provos/libevent/

3.由于linux系统可能默认已经安装libevent,

执行命令:rpm -qa|grep libevent查看系统是否带有该安装软件

如果有执行命令:rpm -e libevent-1.1a-3.2.1 --nodeps(由于系统自带的版本旧,忽略依赖删除)

4.安装libevent,

tar zxvf libevent-1.4.12-stable.tar.gz

cd libevent-1.4.12-stable

./configure --prefix=/usr/local/libevent-1.4

make

make install

5.安装memcached

tar zxvf memcached-1.4.0.tar.gz

cd memcached-1.4.0

./configure --prefix=/usr/local/memcached-1.4 --with-libevent=/usr/local/libevent-1.4.2/

make

make install

至此memcached安装完毕

6.启动memcached命令:

./memcached -d -m 1024 -l 192.168.1.129 -p 11211

# /usr/local/bin/memcached -d -m 200 -u root -l 192.168.1.91 -p 12301 -c 1000 -P /tmp/memcached.pid
相关解释如下:
-d选项是启动一个守护进程,
-m是分配给Memcache使用的内存数量,单位是MB,这里是200MB
-u是运行Memcache的用户,如果当前为 root 的话,需要使用此参数指定用户。
-l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址192.168.1.91
-p是设置Memcache监听的端口,我这里设置了12301,最好是1024以上的端口
-c选项是最大运行的并发连接数,默认是1024,这里设置了256
-P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid
停止Memcache进程:
# kill `cat /tmp/memcached.pid`
也可以启动多个守护进程,但是端口不能重复

注:如果在启动过程中出现如下错误:

error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory

由于libevent安装的时候指定了目录,可能导致memcached找不到该文件,可以执行如下命令修改此错误

查找错误:LD_DEBUG=libs /usr/local/memcached-1.4/bin/memcached -v

会发现memcached查找依赖libevent是在/usr/lib/查找libevent-1.4.so.2

然后执行命令

ln -s /usr/local/libevent-1.4.2/lib/libevent-1.4.so.2 /usr/lib/libevent-1.4.so.2

问题即可解决

memcached的java客户端jar包下载地址:http://www.whalin.com/memcached/#download

 

 

简单应用:

SockIOPool pool = SockIOPool.getInstance();
      pool.setServers(servers);
      pool.setWeights(weighs);
      pool.setInitConn(initConn);
      pool.setMaxConn(maxConn);
      pool.setMinConn(minConn);
      pool.setMaxIdle(maxIdle);
      pool.setMaintSleep(maintSleep);
      pool.setSocketTO(socketTO);
      pool.setNagle(false);
      pool.initialize();
  
      MemCachedClient mcc = new MemCachedClient();

 

 public boolean set(String key, Object value, Date expire){
  if(expire != null)
   return mcc.set(key, value, expire);
  else
   return mcc.set(key, value);
 }
 
 /**
  * 获取记录
  *
  * @param key 键值
  * @return  之前存储的数据
  */
 public Object get(String key){
  return mcc.get(key);
 }

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics