九、NOSQL与缓存系统-Memcached
Memcached 是一个高性能的分布式内存对象缓存系统,现在很多的大型web应用程序包括Facebook, LiveJournalmixi,Digg等等都在使用memcached来支持他们每天数亿级的页面访问。通过把cache层与他们的架构集成,他们的应用程序在提高了性能的同时,还大大降低了数据库的负载。 Memcached处理的原子是每一个(key,value)对(以下简称kv对),key会通过一个hash算法转化成hash-key,便于查找、对比以及做到尽可能的散列。同时,memcached用的是一个二级散列,通过一张大hash表来维护。 Memcached安装 下包wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm 下载完后启动命令 chkconfigmemcached on servicememcached start servicememcached status 测试外部连接端口:telnet 192.168.134.xxx11211 使用命令清单 -d选项是启动一个守护进程, Memcached服务器运行情况的参数 STAT pid3324 服务器进程ID STAT uptime467 服务器运行时间,单位秒 STAT time1364197002 服务器当前的UNIX时间 STAT version1.4.4 服务器的版本号 STATpointer_size 64 STAT rusage_user0.000999 该进程累计的用户时间(秒:微妙) STATrusage_system 0.002999 该进程累计的系统时间(秒:微妙) STATcurr_connections 10连接数量 STATtotal_connections 13服务器运行以来接受的连接总数 STATconnection_structures 11 服务器分配的连接结构的数量 STAT cmd_get 0取回请求总数 STAT cmd_set 0存储请求总数 STAT cmd_flush 0 STAT get_hits 0请求成功的总次数 STAT get_misses0请求失败的总次数 STATdelete_misses 0 STAT delete_hits0 客户端测试 1、引用com.danga.MemCached.* 2、初始化设置 String[] servers = { "192.168.134.139:11211"}; Integer[] weights = { 3 }; MemCachedClient mcc = new MemCachedClient(); SockIOPool pool = SockIOPool.getInstance(); pool.setServers(servers); pool.setWeights(weights); pool.setInitConn(5); pool.setMinConn(5); pool.setMaxConn(250); pool.setMaxIdle(30); pool.setMaintSleep(30); pool.initialize(); 3、编写操作代码 获取某键值内容 Object obj =mcc.get("key2"); 替换某键值内容: // 如果key不存在,则返回flase,更新失败 boolean b =mcc.replace("key2","newValue"); 删除某键值内容 Object key3 =mcc.get("key3"); mcc.delete("key3"); Object key3now = mcc.get("key3"); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |