设为首页 收藏本站
查看: 1084|回复: 0

[经验分享] Memcache的安装和配置

[复制链接]

尚未签到

发表于 2017-4-15 10:35:10 | 显示全部楼层 |阅读模式
  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的服务器端:
  [iyunv@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” 进行检查
  得到以下结果
  [iyunv@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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-365034-1-1.html 上篇帖子: 使用memcache实现高并发计数器 下篇帖子: Memcache开发实例代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表