Linux下的Memcache安装

1,Memcache是什么?

Memcache官方网站:http://memcached.org/,
Memcache集群环境下缓存解决方案 
Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。   
Memcache是danga的一个项目,最早是LiveJournal 服务的,最初为了加速 LiveJournal 访问速度而开发的,后来被很多大型的网站采用。   
Memcached是以守护程序方式运行于一个或多个服务器中,随时会接收客户端的连接和操作,目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力。
它可以应对任意多个连接,使用非阻塞的网络IO。由于它的工作机制是在内存中开辟一块空间,然后建立一个HashTable,Memcached自管理这些HashTable。
为什么会有Memcache和memcached两种名称?
其实Memcache是这个项目的名称,而memcached是它服务器端的主程序文件名,知道我的意思了吧。一个是项目名称,一个是主程序文件名,在网上看到了很多人不明白,于是混用了。 
Memcached是高性能的,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度。Memcached由Danga Interactive开发,用于提升LiveJournal.com访问速度的。LJ每秒动态页面访问量几千次,用户700万。Memcached将数据库负载大幅度降低,更好的分配资源,更快速访问。 

2, Memcache工作原理
首先 memcached 是以守护程序方式运行于一个或多个服务器中,随时接受客户端的连接操作,客户端可以由各种语言编写,目前已知的客户端 API 包括 Perl/PHP/Python/Ruby/Java/C#/C 等等。客户端在与 memcached 服务建立连接之后,接下来的事情就是存取对象了,每个被存取的对象都有一个唯一的标识符 key,存取操作均通过这个 key 进行,保存到memcached 中的对象实际上是放置内存中的,并不是保存在 cache 文件中的,这也是为什么 memcached 能够如此高效快速的原因。注意,这些对象并不是持久的,服务停止之后,里边的数据就会丢失。
与许多 cache 工具类似,Memcached 的原理并不复杂。它采用了C/S的模式,在 server 端启动服务进程,在启动时可以指定监听的 ip,自己的端口号,所使用的内存大小等几个关键参数。一旦启动,服务就一直处于可用状态。Memcached 的目前版本是通过C实现,采用了单进程,单线程,异步I/O,基于事件 (event_based) 的服务方式.使用libevent 作为事件通知实现。多个 Server 可以协同工作,但这些 Server 之间是没有任何通讯联系的,每个 Server 只是对自己的数据进行管理。Client 端通过指定 Server 端的 ip 地址(通过域名应该也可以)。需要缓存的对象或数据是以 key->value对的形式保存在Server端。key 的值通过 hash 进行转换,根据 hash 值把 value 传递到对应的具体的某个 Server 上。当需要获取对象数据时,也根据 key 进行。首先对 key 进行 hash,通过获得的值可以确定它被保存在了哪台 Server 上,然后再向该 Server 发出请求。Client 端只需要知道保存 hash(key) 的值在哪台服务器上就可以了。
其实说到底,memcache 的工作就是在专门的机器的内存里维护一张巨大的 hash 表,来存储经常被读写的一些数组与文件,从而极大的提高网站的运行效率。

3, 下载memcached
wget http://www.memcached.org/files/memcached-1.4.25.tar.gz
4, 安装libevent
另外,Memcache用到了libevent这个库用于Socket的处理,所以还需要安装libevent,libevent的最新版本是libevent-1.3。(如果你的系统已经安装了libevent,可以不用安装)
官网:http://libevent.org/
检查是否已安装libevent可以用此命令:ls -al /usr/local/lib/ |grep libevent  注意这个路径/usr/local/lib是你安装libevent的目录。
没有显示相关的就要下载安装:wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz
配置时需要指定一个安装路径,即./configure --prefix=/usr/local/lib;然后make;然后make install;
5, 安装memcached
需要在配置时需要指定libevent的安装路径即./configure --with-libevent=/usr/local/lib;然后make;然后make install;这样就完成了Linux下Memcache服务器端的安装。

安装完成后会把memcached放到 /usr/local/bin/memcached,验证是否安装成功ls -al /usr/local/bin/mem*

m

6,memcached的基本设置:
启动Memcache的服务器端:
/usr/local/bin/memcached -d -m 10 -u root -l 192.168.0.149 -p 12000 -c 256 -P /tmp/memcached.pid

-d选项是启动一个守护进程,
-m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB,
-u是运行Memcache的用户,我这里是root,
-l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址192.168.0.200,
-p是设置Memcache监听的端口,我这里设置了12000,最好是1024以上的端口,
-c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定,
-P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid,
如果要结束Memcache进程,执行:

kill `cat /tmp/memcached.pid`

也可以启动多个守护进程,不过端口不能重复。

查看是否建立成功,telnet测试memcached 

[root@JfbIpadServer02 ~]#telnet 192.168.0.149 12000 
Trying 192.168.0.149...
Connected to 192.168.0.149.
Escape character is '^]'.
查看版本

version
VERSION 1.4.25
Memcached缓存服务的状态查询
stats
STAT pid 7230
STAT uptime 120
STAT time 1459409077
STAT version 1.4.25
STAT libevent 2.0.21-stable
对Memcached缓存服务的状态查询,需先telnet连接上服务:telnet 192.168.0.149 12000,然后使用 stats命令查看缓存服务的状态,会返回如下的数据:
time:    1255537291                               服务器当前的unix时间戳 
total_items:    54                                     从服务器启动以后存储的items总数量 
connection_structures:    19                    服务器分配的连接构造数 
version:    1.2.6                                        memcache版本 
limit_maxbytes:    67108864                    分配给memcache的内存大小(字节) 
cmd_get:    1645                                      get命令(获取)总请求次数 
evictions:    0                                            为获取空闲内存而删除的items数(分配给memcache的空间用满后需要删除旧的items来得到空间分配给新的items) 
total_connections:    19                           从服务器启动以后曾经打开过的连接数 
bytes:    248723                                      当前服务器存储items占用的字节数 
threads:    1                                             当前线程数 
get_misses:    82                                      总未命中次数 
pointer_size:    32                                    当前操作系统的指针大小(32位系统一般是32bit) 
bytes_read:    490982                              总读取字节数(请求字节数) 
uptime:    161                                           服务器已经运行的秒数 
curr_connections:    18                             当前打开着的连接数 
pid:    2816                                               memcache服务器的进程ID 
bytes_written:    16517259                     总发送字节数(结果字节数) 
get_hits:    1563                                      总命中次数 
cmd_set:    54                                          set命令(保存)总请求次数 
curr_items:    28                                       服务器当前存储的items数量 
Ok,安装memcached1.4.25成功。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值