Memcache 初体验

来源:互联网 发布:什么题库软件好 编辑:程序博客网 时间:2024/06/04 18:39

1:下载安装

wget http://memcached.org/files/memcached-1.4.20.tar.gz


依赖库

wget http://cloud.github.com/downloads/libevent/libevent/libevent-2.0.17-stable.tar.gz


2:启动memcached


 /usr/local/bin/memcached -d -m 10 -u root -l 192.168.0.200 -p 12000 -c 256 -P /tmp/memcached.pid

-d选项是启动一个守护进程,
-m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB,
-u是运行Memcache的用户,我这里是root,
-l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址192.168.0.200,
-p是设置Memcache监听的端口,我这里设置了12000,最好是1024以上的端口,
-c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定,
-P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid,

想开机自动启动的话,只需在/etc/rc.d/rc.local中加入一行,上面命令
有人用以下命令:
/usr/local/memcached/bin/memcached -d -m 20 -p 11211 -u apache
上面有些东西可以参考一下:即,ip不指定时,默认是本机,用户,最好选择是:apache 或 deamon
这样,也就是属于哪个用户的服务,由哪个用户启动。


转自: 

http://www.cnblogs.com/technet/archive/2011/09/11/2173485.html


测试代码:


package com.danga.MemCached.test;import java.util.Date;import com.danga.MemCached.MemCachedClient;import com.danga.MemCached.SockIOPool;public class MemCachedManager {protected static MemCachedClient mcc = new MemCachedClient();protected static MemCachedManager memCachedManager = new MemCachedManager();     /**      * 获取唯一实例.      *       * @return      */      public static MemCachedManager getInstance() {          return memCachedManager;      }  static {// 服务器列表和其权重String[] servers = { "192.168.10.69:12000" };Integer[] weights = { 3 };// 获取socke连接池的实例对象SockIOPool pool = SockIOPool.getInstance();// 设置服务器信息pool.setServers(servers);pool.setWeights(weights); // 设置初始连接数、最小和最大连接数以及最大处理时间  pool.setInitConn(5);pool.setMinConn(5);pool.setMaxConn(250);pool.setMaxIdle(1000 * 60 * 60 * 6); // 设置主线程的睡眠时间  pool.setMaintSleep(30);// Tcp的规则就是在发送一个包之前,本地机器会等待远程主机// 对上一次发送的包的确认信息到来;这个方法就可以关闭套接字的缓存,// 以至这个包准备好了就发;pool.setNagle(false);// 连接建立后对超时的控制pool.setSocketTO(3000);// 连接建立时对超时的控制pool.setSocketConnectTO(0);// initialize the connection pool// 初始化一些值并与MemcachedServer段建立连接pool.initialize();// lets set some compression on for the client// compress anything larger than 64kmcc.setCompressEnable(true);mcc.setCompressThreshold(64 * 1024);}  /**      * 添加一个指定的值到缓存中.      *       * @param key      * @param value      * @return      */      public boolean add(String key, Object value) {          return mcc.add(key, value);      }        public boolean add(String key, Object value, Date expiry) {          return mcc.add(key, value, expiry);      }        public boolean replace(String key, Object value) {          return mcc.replace(key, value);      }        public boolean replace(String key, Object value, Date expiry) {          return mcc.replace(key, value, expiry);      }        /**      * 根据指定的关键字获取对象.      *       * @param key      * @return      */      public Object get(String key) {          return mcc.get(key);      }   public static void main(String[] args) {   MemCachedManager cache = MemCachedManager.getInstance();         // cache.add("test", 234);   System.out.println(cache.get("test"));;}}


0 0
原创粉丝点击