Memcached个人熟悉全过程

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 ="get username\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的方式进行数据的删除存储





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值