Memcached使用之道

Windows下的Memcache安装

很多phper不知道如何在Windows下搭建Memcache的开发调试环境,最近个人也在研究Memcache,记录下自己安装搭建的过程。
其实我开始研究Memcache的时候并不知道居然还有memcached for Win32这个鸟东西,害得我在CnetOS下折腾1天才搞定,今天突然发现Windows下的Memcache进行开发调试完全没有问题,所以写篇Memcache的文档分享给大家。

Windows下的Memcache安装
1.
下载memcachewindows稳定版,解压放某个盘下面,比如在c:\memcached
2.
在终端(也即cmd命令界面)下输入 ‘c:\memcached\memcached.exe -d install’ 安装

3.
再输入: ‘c:\memcached\memcached.exe -d start’ 启动。NOTE: 以后memcached将作为windows的一个服务每次开机时自动启动。这样服务器端已经安装完毕了。
4.
下载php_memcache.dll,请自己查找对应的php版本的文件
5.
C:\winnt\php.ini 加入一行 ‘extension=php_memcache.dll
6.
重新启动Apache,然后查看一下phpinfo,如果有memcache,那么就说明安装成功!

memcached的基本设置

-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
显示帮助

package com.xuanyou;

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();

	// 设置与缓存服务器的连接池
	static {
		// 服务器列表和其权重
		String[] servers = { "127.0.0.1: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 MemCachedManager() {

	}

	/**
	 * 获取唯一实例.
	 * 
	 * @return
	 */
	public static MemCachedManager getInstance() {
		return memCachedManager;
	}

	/**
	 * 添加一个指定的值到缓存中.
	 * 
	 * @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("hello", 234);
		System.out.print("get value : " + cache.get("hello"));
	}
}


public static void main(String[] args) {
		MemCachedManager cache = MemCachedManager.getInstance();
		TBean tb = new TBean();
		tb.setName("E网打进");
		cache.add("bean", tb);

		TBean tb1 = (TBean) cache.get("bean");
		System.out.println("name=" + tb1.getName());
		tb1.setName("E网打进_修改的");

		cache.replace("bean", tb1);
		tb1 = (TBean) cache.get("bean");
		System.out.println("name=" + tb1.getName());

 

你可能感兴趣的:(windows,PHP,bean,cache,memcached)