Memcache的安装和配置

   Memcache的安装和配置

简介:

Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像视频文件以及数据库检索的结果等。简单的说就是将数数据调用到内存中,然后从内存中读取,从而大大提高读取速度。

  Memcache是danga的一个项目,最早是LiveJournal 服务的,最初为了加速 LiveJournal 访问速度而开发的,后来被很多大型的网站采用。

  Memcached是以守护程序方式运行于一个或多个服务器中,随时会接收客户端的连接和操作。

工作原理:

 Memcached 是以守护程序方式运行于一个或多个服务器中,随时接受客户端的连接操作,客户端可以由各种语言编写,目前已知的客户端 API 包括 Perl/PHP/Python/Ruby/Java/C#/C 等等。客户端首先与 Memcached 服务建立连接,然后存取对象。每个被存取的对象都有一个唯一的标识符 key,存取操作均通过这个 key 进行,保存的时候还可以设置有效期。保存在 Memcached 中的对象实际上是放置在内存中的,而不是在硬盘上。Memcached 进程运行之后,会预申请一块较大的内存空间,自己进行管理,用完之后再申请一块,而不是每次需要的时候去向操作系统申请。Memcached将对象保存在一个巨大的Hash表中,它还使用NewHash算法来管理Hash表,从而获得进一步的性能提升。所以当分配给Memcached的内存足够大的时候, Memcached的时间消耗基本上只是网络Socket连接了。 
    Memcached按照LRU方式调度数据。LRU是Least Recently Used的缩写,即最近最少使用页面置换算法,是为虚拟页式存储管理服务的。LRU算法在实际的工作环境中会与操作系统相关,比如32位的操作系统,最大的寻址空间是4G,如果当前内存的使用超过了这个限度,将被调出内存,内存中总维持最新最常用的数据。64位操作系统大大扩展了内存的寻址能力,所以现在很memcached服务都是运行在64位系统上。

 

1.服务器端主要是安装memcache服务器端,我们用的版本是 memcached-1.4.5

下载:http://memcached.googlecode.com/files/memcached-1.4.5.tar.gz

另外,Memcache用到了libevent这个库用于Socket的处理,所以还需要安装libevent

libevent的最新版本是libevent-2.0.8。(如果你的系统已经安装了libevent,可以不用安装)

下载:http://www.monkey.org/~provos/libevent-2.0.8-rc.tar.gz

 

安装libevent

tar zxvf libevent-2.0.8-rc.tar.gz

./configure -prefix=/usr

make

make install

 

 

 

安装memcached (多线程支持)

tar zxvf memcached-1.4.5.tar.gz

./configure -with-libevent=/usr --enable-threads 【查看configure可以发现没有此选项,查看/usr/lib下发现有好多关于线程的库文件

可以用./configure --help查看】

make

make install

 

 

 

启动Memcache的服务器端:

[root@master ~]# /usr/local/bin/memcached -d -m 4100 -u root -l 192.168.55.229  -p 12000  -c 256 -P /var/run/memcached.pid

   -d选项是启动一个守护进程,

    -m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB,

    -u是运行Memcache的用户,我这里是root,

    -l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址192.168.55.229

    -p是设置Memcache监听的端口,我这里设置了12000,最好是1024以上的端口,

    -c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定,

    -P是设置保存Memcache的pid文件,我这里是保存在/var/run/memcached.pid

 

 

 

如果要结束Memcache进程,执行:

    # kill `/var/run/memcached.pid`

 

如果使用的64位系统,启动时会得到下面的错误。

/usr/local/bin/memcached: error while loading shared libraries: libevent-2.0.so.2: cannot open shared object file: No such file or directory

 

【顺便说一下:如何产看系统是64位还是其他呢,uname -a】

 

使用 “LD_DEBUG=libs /usr/local/bin/memcached -v” 进行检查

得到以下结果

[root@master ~]# LD_DEBUG=libs /usr/local/bin/memcached -v

     32034:     find library=libevent-2.0.so.2 [0]; searching

     32034:      search cache=/etc/ld.so.cache

     32034:      search path=/lib64/tls/x86_64:/lib64/tls:/lib64/x86_64:/lib64:/usr/lib64/tls/x86_64:/usr/lib64/tls:/usr/lib64/x86_64:/usr/lib64            (system search path)

     32034:       trying file=/lib64/tls/x86_64/libevent-2.0.so.2

     32034:       trying file=/lib64/tls/libevent-2.0.so.2

     32034:       trying file=/lib64/x86_64/libevent-2.0.so.2

     32034:       trying file=/lib64/libevent-2.0.so.2

     32034:       trying file=/usr/lib64/tls/x86_64/libevent-2.0.so.2

     32034:       trying file=/usr/lib64/tls/libevent-2.0.so.2

     32034:       trying file=/usr/lib64/x86_64/libevent-2.0.so.2

     32034:       trying file=/usr/lib64/libevent-2.0.so.2

     32034:

/usr/local/bin/memcached: error while loading shared libraries: libevent-2.0.so.2: cannot open shared object file: No such file or directory

64位系统只会去找lib64下的包,处理办法是在lib64下建立个软连接:

ln -s /usr/lib/libevent-2.0.so.2 /usr/lib64/libevent-2.0.so.2 

或者:

ln -s /usr/lib/libevent-1.4.so.2.2.0  /usr/lib64/libevent-1.4.so.2

以上服务已经安装完成

xmemcached客户端

参考文档http://code.google.com/p/xmemcached/wiki/User_Guide_zh

jar包下载:http://code.google.com/p/xmemcached/downloads/list

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值