hunan84229247 发表于 2013-1-16 00:20:44

Linux(CentOS 5.x)下memcached 配置、安装

1. yum install gcc

2. cd /tmp
3. wget http://www.monkey.org/~provos/libevent-2.0.4-alpha.tar.gz   注:memcached 用到了 libevent 这个库用于 Socket 的处理,所以 还需要安装 libevent
4. tar zxvf libevent-2.0.4-alpha.tar.gz
5. cd libevent-2.0.4-alpha
6. ./configure -prefix=/usr/local/libevent
7. make
8. make install

9. cd ~
10. cd /tmp
11. wget http://memcached.googlecode.com/files/memcached-1.4.5.tar.gz
12. tar zxvf memcached-1.4.5.tar.gz
13. cd memcached-1.4.5
14. ./configure -prefix=/usr/local/memcached --with-libevent=/usr/local/libevent    注:安装memcached时需要指定libevent的安装位置
15. make
16. make install
17. export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/libevent/lib   注:将libevent的lib目录加入LD_LIBRARY_PATH里
18. /usr/local/memcached/bin/memcached -d   注:启动memcached
 
memcached启动参数描述:
-d :启动一个守护进程,
-m:分配给Memcache使用的内存数量,单位是MB,默认是64MB,
-u :运行Memcache的用户
-l  :监听的服务器IP地址
-p :设置Memcache监听的端口,默认是11211    注:-p(p为小写)
-c :设置最大并发连接数,默认是1024
-P :设置保存Memcache的pid文件   注:-P(P为大写)
如果要结束Memcache进程,执行:kill -9 pid
 
以下是java调用代码:
 
import java.util.Date;import com.danga.MemCached.MemCachedClient;import com.danga.MemCached.SockIOPool;public class MemCached {    // 创建全局的唯一实例    protected static MemCachedClient mcc = new MemCachedClient();       protected static MemCached memCached = new MemCached();       // 设置与缓存服务器的连接池    static {      // 服务器列表和其权重      String[] servers = {"192.168.159.128:11211","192.168.159.129:11211"};      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 );      // 初始化连接池      pool.initialize();      // 压缩设置,超过指定大小(单位为K)的数据都会被压缩      mcc.setCompressEnable( true );      mcc.setCompressThreshold( 64 * 1024 );    }       /**   * 保护型构造方法,不允许实例化!   *   */    protected MemCached()    {      }       /**   * 获取唯一实例.   * @return   */    public static MemCached getInstance()    {      return memCached;    }       /**   * 添加一个指定的值到缓存中.   * @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);    }      public boolean delete(String key){    return mcc.delete(key);    }       /**   * 根据指定的关键字获取对象.   * @param key   * @return   */    public Object get(String key)    {      return mcc.get(key);    }       public static void main(String[] args)    {      MemCached cache = MemCached.getInstance();      cache.add("hello", "234");      System.out.println("get value : " + cache.get("hello"));    }   }
页: [1]
查看完整版本: Linux(CentOS 5.x)下memcached 配置、安装