加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

九、NOSQL与缓存系统-Memcached

发布时间:2020-12-13 13:37:07 所属栏目:百科 来源:网络整理
导读:Memcached 是一个高性能的分布式内存对象缓存系统,现在很多的大型 web 应用程序包括 Facebook , LiveJournal mixi,Digg 等等都在使用 memcached 来支持他们每天数亿级的页面访问。通过把 cache 层与他们的 架构集成,他们的应用程序在提高了性能的同时,还

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选项是启动一个守护进程,
-m是分配给memcache使用的内存数量,单位是MB,例中是10MB
-u是运行Memcache的用户,例中是root,
-l是监听的服务器IP地址,若有多个地址的话,IP地址192.168.134.139 ,
-p是设置Memcache监听的端口,例中设置为12000,最好>1024
-c选项是最大运行的并发连接数,默认是1024,例中设置了256,按照你服务器的负载量来设定,
-P是设置保存Memcache的pid文件,例中保存在/tmp/memcached.pid

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读