设为首页 收藏本站
查看: 1138|回复: 0

[经验分享] Memcached个人熟悉全过程

[复制链接]

尚未签到

发表于 2015-11-19 08:59:09 | 显示全部楼层 |阅读模式
Memcached熟悉全过程
1、下载我是从这下载的:http://code.google.com/p/memcached/downloads/detail?name=memcached-1.4.15.tar.gz&can=2&q=
2、安装
下载到的是tar.gz文件,我的是mac电脑。
进入Memcached的目录,./configure提示要先安装libevent
到这里http://libevent.org/下载了libevent
后对libevent, memcached执行下面三个命令安装完成
./configure
make
sudomake install进行安装
3、安装完之后就是启动Memcached
启动命令:
memcached-d – m 1024 -l 127.0.0.1 -p 99999
4、启动完后用telnet测试是否能连接
telnet127.0.0.1 99999
5、测试成功之后就可以使用memcached的命令和服务器交互了。
如:添加keyvalue
add username 0 0 10
test
getusername
add:memcached中添加值
get:memcached中获取值
6Memcached的数据都是缓存在内存中,所以重启memcached和电脑重启都会导致缓存全部消失,当缓存内容满了之后,会自动根据自有的算法回收利用的。
7Memcached多个实例之间本身不会进行通信,所以本身没有实现分布式的功能,而应用如果要实现多实例的memcached的分布式功能的话,那得看客户端的实现。
8Memcached启动有很多参数,而且作用很大,学习它们的作用和使用也非常重要。
-p:Memcached的监听端口号,不设置的话Memcached默认的的11211
-U:监听的upd端口,0的时候表示关闭,默认是11211
-l:监听的IP地址,不写的话所有的IP都能访问,写了的话只这这IP能访问,要是有多
IP用逗号分隔或者用多个-l就行了,实际应用中应当都是要配置的,不能让任何机器都能访问我们的memcached服务器,只有指定的机器可以访问。
*有时候不配置想让只有固定的机器才能访问的话,可以配置电脑的防火墙只能固定
的电脑IP访问。
-d:以后台的方式运行,不占用终端。
-m:最大可使用的内存。
…....
9、关闭memached,只要找到它对应 的进程号使用kill命令就行了。进程号的找法可以这样
psaux| grep memached这样找到,然后Kill就行了。
10、用的mac电脑很多时候有些操作没有root权限无法执行好像,让我很多时候有些测试
无法进行,之后干脆在里面装了个虚拟机进行一些测试。
如:在mac,eclipse下集成tomcattomcat无法用80端口起,要在终端用sudo才行
如:在mac中开memcached-l只能是本机才能起来,有其它IP无法运行起来
11memcache具体有哪些参数和作用可以用memcached-h来查看,里面的英文也都是比较好理解的。
12、对于系统中常用memached来说,可以把Memached的一些常用操作写成shell,perl...本的形式放在服务器上,这样能更有效的进行管理。
13memached是基于文本行的协议,所以任何用户任何程序语言通过tcp协议都能和memcached服务器进行交互
如:写一个最简单的JAVA调用memcachedget命令取数据
publicstaticvoidmain(String[]args) throwsException
{
Socketsocket =newSocket("10.211.55.3",11211);
OutputStreamout = socket.getOutputStream();
InputStreaminput = socket.getInputStream();
byte[]bytes ="getusername\r\n".getBytes("utf-8");
out.write(bytes);
out.flush();
byte[]rs =newbyte[1024];
intn = input.read(rs);
System.out.println(newString(rs,0,n));
}
这程序能获取到在memcachedkey值是usernamevalue,返回结果进行打印如下:
VALUEusername 0 3
aaa
END
当然很多时候,我们是用一些成熟的别人写好的客户端程序可能。
14memcached命令
set:设置值,如果要设置的key已经存在,则被新的值覆盖
setusername 0 0 5
usernamekey,后面几个是参数,依次表示:额外的Key-value信息,缓存时间(0代表永久,单位秒),大小(单位字节).
stats:可以详细的查看Memcached的各种信息和使用情况。
Add:不存在添加,存在不做任何操作
replace:存在就覆盖,不存在就不做任何操作
get:获取存在的值
delete:删除已缓存的值
gets:get差不多,返回信息多点
flush_all:清空所有已缓存的数据。
15Memcached内存分配的方式有自己的模式,在使用它的时候,根据实际要缓存的东西情况,去调整内存的分配方式,更有效的利用内存,如-f选项有一定这方面的功能,
16、当memcached内存用尽和时候,内存回收方式是利用LRU算法进行代替。数据的缓存时间过期了的话,数据并不会从缓存中清除,只是说你在get的时候,Memcached会判断该数据是否已经过期,如果过期就不会返回了。当新数据进行存储,memcached会优先使用过期的数据内存空间,当内存真的没有过期的数据而又满的情况下就用LRU的方式进行数据的删除存储









         版权声明:本文为博主原创文章,未经博主允许不得转载。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-140930-1-1.html 上篇帖子: Memcached问题集 下篇帖子: 用Memcached存放数组不同方法的优劣比较
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表