首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 互联网 >

memcached配备和使用

2012-11-10 
memcached配置和使用? ? ? ? memcached作为著名的分布式内存对象缓存系统,具有高性能、免费和开源的特点,在

memcached配置和使用

? ? ? ? memcached作为著名的分布式内存对象缓存系统,具有高性能、免费和开源的特点,在互联网应用中大行其道,用于加快web动态应用程序的响应和减轻数据库的负荷。

? ? ? ? memcached的实现机制为K-V,类似Map容器机制。

Windows环境下载:

1. memcached的windows版本,地址在http://code.jellycan.com/memcached/,此例用的是memcached-1.2.6-win32-bin.zip。
2. 启动memcached服务

memcached.exe -d install
memcached.exe -d start?
3. java客户端:https://github.com/gwhalin/Memcached-Java-Client/downloads?

java_memcached-release_2.6.6.zip为java的连接客户端?
解压文件,将里面的jar包拷贝到项目的lib目录下。

Linux环境下载:

(1) 安装libevent

(apt-get install的:libevent好像没有被认出来)

下载? http://www.monkey.org/~provos/libevent-2.0.12-stable.tar.gz

libevent-2.0.12-stable$configure

libevent-2.0.12-stable$make

libevent-2.0.12-stable$sudo make install

(2)安装memcached

下载安装memcached1.4.5????

http://memcached.googlecode.com/files/memcached-1.4.5.tar.gz

memcached-1.4.5$./configure

memcached-1.4.5$make

memcached-1.4.5$sudo make install

如果启动失败,找不到libevent,则连接一下

/usr/lib$ sudo ln -s /usr/local/lib/libevent-2.0.so.5 libevent-2.0.so.5

(3)启动

$ memcached

?

** * Description 缓存中要保存的对象,必须将对象序列化才能保存 * @author Administrator * 2012-10-16 */class User implements Serializable{/** *  */private static final long serialVersionUID = -7969334018970422840L;public String userName;public String password;}public class MemcachedTest {static{// 服务器的地址,此处写的同一个地址,实际应为不同String[] servers = {"127.0.0.1:11211", "127.0.0.1:11211"};        //创建一个连接池          SockIOPool pool = SockIOPool.getInstance();          //设置缓存服务器          pool.setServers(servers);          //设置初始化连接数,最小连接数,最大连接数以及最大处理时间          pool.setInitConn(50);          pool.setMinConn(50);          pool.setMaxConn(500);          pool.setMaxIdle(1000 * 60 * 60);          //设置主线程睡眠时间,每3秒苏醒一次,维持连接池大小          //maintSleep 千万不要设置成30,访问量一大就出问题,单位是毫秒,推荐30000毫秒。          pool.setMaintSleep(3000);          //关闭套接字缓存          pool.setNagle(false);          //连接建立后的超时时间          pool.setSocketTO(3000);          //连接建立时的超时时间          pool.setSocketConnectTO(0);          //初始化连接池          pool.initialize();  }public static void main(String[] args) throws IOException {MemCachedClient c = new MemCachedClient();//存取一个简单的Integer// Store a value (async) for one hourc.set("someKey", new Integer(4), 3600);// Retrieve a value (synchronously).Object myObject = c.get("someKey");Integer result = (Integer) myObject;System.out.println(result);//存取一个序列化的对象System.out.println("存之前的时间:" + System.currentTimeMillis());User user1 = new User();user1.userName = "ZhangSan";user1.password = "alongpasswordhere";c.set("user1", user1, 3600);System.out.println("取之前的时间:" + System.currentTimeMillis());User myUser1 = (User)(c.get("user1"));System.out.println(myUser1.userName + " " + myUser1.password);System.out.println("取之后的时间:" + System.currentTimeMillis());}}

热点排行