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