当前位置:操作系统 > Unix/Linux >>

Memcached学习笔记(一)

Memcached学习笔记(一)
 
什么是Memcached?
 
Memcashed项目由Dango Interactive公司开发,最初为了加速LiveJournal访问速度而开发,后来成为广泛应用的开源项目。它是基于内存工作的键-值存储型的数据库。操作简单,但是能解决很多问题。在过去的几年,广泛用于互联网网站中,作为应用与数据库交互的中间层,即缓存,将一些SQL的执行结果放在内存中,在指定的时间内,执行相同的查询则直接从内存中读取,大大提升了网站的访问速度。根据存储引擎来划分,它应该是属于内存数据库。
 
为什么要用Memcached?
 
在互联网时代,在这个信息爆炸的时代,速度即体验,据统计,如果谷歌响应的速度延迟0.5秒,查询数将减少20%,如果亚马逊的响应延迟0.1秒,营业额下降1%.
 
Memcached有什么特点?
 
 全内存运转。它的数据从来不保存在硬盘,因此我们也称之为“临时性数据库”。如果将服务器关机,那么就预示着内存中的数据丢失。
哈希方式存储。即通过“键-值”对保存到数据库。
简单文本协议进行数据通信。跟其通讯的协议都比较简单,易懂。用记简单的命令就能对其进行操作。
只操作字符型数据。在Memcached无论放入什么类型的数据,如字符串、整形数据、数组等,它都一视同仁,将其作为字节来处理,至于怎么解析这些数据,由应用层来处理。
 其它类型数据由应用解释,序列化以及反序列化。
集群也由应用进行控制,采用一致性散列(哈希)算法。不同语言,都提供了不同的函数库及算法,来调度、访问Memcached。
如何安装Memcached?
在ReadHat 或者是CentOS下直接通过yum安装即可。 
[plain] 
yum   install  memcached  

 

  如何启动Memcached?
执行以下命名启动memcached,默认端口为11211.
[plain] 
/etc/rc.d/init.d/memcached  start  

 

 
        如何测试使用Memcached?
用简单的telnet即可进行测试:
[plain] 
[root@localhost home]# telnet localhost 11211  
Trying 127.0.0.1...  
Connected to localhost.localdomain (127.0.0.1).  
Escape character is '^]'.  
set name 0 0 10  
zhangsan  
  
STORED  
get name  
VALUE name 0 10  
zhangsan  
  
END  
set age 0 0 2  
22  
STORED  
get age  
VALUE age 0 2  
22  
END  

 

 
 
Memcached有哪些常用的命令?
set 命令:
set  <key>   <flag>   <expires>   <byte>
 
flag : 用于指定是否压缩数据,0不压缩,1压缩。
 
expires : 指定数据保存时间,一种方法是秒数(不能超过30天),另一种方法可以使用UNIX时间戳指定,0为有效期无限。
 
byte : 保存值的字节数。
 
get 命令,用于取出对应键的值:
get <key>  
incr 命令,为指定的key的值加上一个值:
incr  <key>  <value>  
[plain] 
set counter 0 0 1  
1  
STORED  
incr counter 1  
2  
incr counter 2  
4  
get counter  
VALUE counter 0 1  
4  
END  

 

delete 命令,删除指定key的值:
delete <key>
[plain] 
delete counter  
DELETED  
get counter  
END  

 

append命令,在已存在的key值上新增值:
[plain] 
set test 0 0 4  
test  
STORED  
append test 0 0 3  
add  
STORED  
get test  
VALUE test 0 7  
testadd  
END  

 

flush_all命令,清空内存,删除所有的值:
[plain] 
get counter  
VALUE counter 0 1  
0  
END  
get test  
VALUE test 0 7  
testadd  
END  
flush_all  
OK  
get counter  
END  
get test  
END  

 

 
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,