阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

CentOS 6.8 源码安装 Memcached

237次阅读
没有评论

共计 3552 个字符,预计需要花费 9 分钟才能阅读完成。

1.  背景

      许多 Web  应用程序都将数据保存到 RDBMS 中,应用服务器从中读取数据并在浏览器中显示。但随着数据量的增大,访问的集中,就会出现 REBMS 的负担加重,数据库响应恶化,网站显示延迟等重大影响。Memcached是高性能的分布式内存缓存服务器。一般的使用目的是通过缓存数据库查询结果,减少数据库的访问次数,以提高动态 Web  应用的速度、提高扩展性。如图:



 CentOS 6.8 源码安装 Memcached

Memcached作为高速运行的分布式缓存服务器具有以下特点。


1.  协议简单

        memcached的服务器客户端通信并不使用复杂的 MXL 等格式,而是使用简单的基于文本的协议。

 

2.  基于 libevent 的事件处理

     libevent是个程序库,他将 Linux epollBSD类操作系统的 kqueue 等时间处理功能封装成统一的接口。memcached使用这个 libevent 库,因此能在 LinuxBSDSolaris 等操作系统上发挥其高性能。

 

3.  内置内存存储方式

       为了提高性能,memcached中保存的数据都存储在 memcached 内置的内存存储空间中。由于数据仅存在于内存中,因此重启 memcached,重启操作系统会导致全部数据消失。另外,内容容量达到指定的值之后memcached 回自动删除不适用的缓存。

 

4. Memcached不互通信的分布式

       memcached尽管是 分布式 缓存服务器,但服务器端并没有分布式功能。各个 memcached 不会互相通信以共享信息。他的分布式主要是通过客户端实现的。

 

5.  Memcached的内存管理

      最近的 memcached 默认情况下采用了名为 Slab Allocatoion 的机制分配,管理内存。在改机制出现以前,内存的分配是通过对所有记录简单地进行 mallocfree来进行的。但是这中方式会导致内存碎片,加重操作系统内存管理器的负担。

    Slab Allocator的基本原理是按照预先规定的大小,将分配的内存分割成特定长度的块,已完全解决内存碎片问题。Slab Allocation  的原理相当简单。将分配的内存分割成各种尺寸的块(chucnk),并把尺寸相同的块分成组(chucnk的集合)如图:

CentOS 6.8 源码安装 Memcached


       而且 slab allocator  还有重复使用已分配内存的目的。也就是说,分配到的内存不会释放,而是重复利用。

    Slab Allocation 的主要术语

        Page :分配给 Slab  的内存空间,默认是 1MB。分配给Slab  之后根据 slab  的大小切分成chunk.

        Chunk : 用于缓存记录的内存空间。

        Slab Class:特定大小的 chunk  的组。 

2.  环境

CentOS 6.8 源码安装 Memcached

 

3.  安装(下载源码包全部放至 /usr/local/src 目录下,先 cd 切换到 /usr/local/src 目录下工作)

  • 安装 libevent(memcache 网络库部分基于 libevent 库开发,解决了不同平台的差异性)

    • 下载:wget https://github.com/libevent/libevent/releases/download/release-2.1.8-stable/libevent-2.1.8-stable.tar.gz

    • 解压: tar xf libevent-2.1.8-stable.tar.gz 

    • 进入目录: cd libevent-2.1.8-stable

    • 安装: ./configure –prefix=/usr/local/libevent-2.1.8 && make && make install

    • 做软链接 ln -s /usr/local/libevent-2.1.8 /usr/local/libevent

  • 安装 memcached

    • 下载: wget http://www.memcached.org/files/memcached-1.4.35.tar.gz

    • 解压: tar xf memcached-1.4.35.tar.gz

    • 进入目录: cd memcached-1.4.35

    • 编译安装:./configure –prefix=/usr/local/memcached-1.4.35 –with-libevent=/usr/local/libevent && make && make install

    • 做软链接: ln -s /usr/local/memcached-1.4.35 /usr/local/memcached

       

  • 创建系统用户, 并且不创建家目录

    • useradd -r -s /sbin/nologin -M memcached

 

  • 编辑并添加 memcached 启动脚本(当前路径还在 memcached-1.4.35 源码包目录里)

    • 进入脚本目录: cd scripts

    • 复制脚本至 init.d 目录下: cp memcached.sysv /etc/init.d/memcached

    • 创建 memcached 运行目录, 并改变其用户与用户组为 memcached

      • mkdir /var/run/memcached

      • chown memcached.memcached /var/run/memcached

    • 编辑脚本: (/etc/init.d/memcached)

      • daemon memcached -d -p $PORT -u $USER  -m $CACHESIZE -c $MAXCONN -P /var/run/memcached/memcached.pid $OPTIONS 改为 daemon /usr/local/memcached/bin/memcached -d -p $PORT -u $USER  -m $CACHESIZE -c $MAXCONN -P /var/run/memcached/memcached.pid $OPTIONS

         

    • (可选)删除脚本中以下内容

                PORT=11211

                USER=nobody

                MAXCONN=1024

                CACHESIZE=64

                OPTIONS=””

 

    • 创建参数脚本并添加参数

      • 创建 touch /etc/sysconfig/memcached

      • 更改用户与用户组 chown memcached.memcached /etc/sysconfig/memcached

      • 添加内容 

                     PORT=11211

                USER=memcached

                MAXCONN=1024

                CACHESIZE=64

                OPTIONS=”-l 0.0.0.0,::1″

 

    •  将 memcached 添加进 service 管理, 并开机启动

      • chkconfig –add memcached

      • chkconfig memcached on

         

4.  测试

  • 启动: /etc/init.d/memcached start 或者 service memcached start

CentOS 6.8 源码安装 Memcached

启动成功

 

5.  连接(通过 telnet 测试连接)

telnet 127.0.0.1 11211

CentOS 6.8 源码安装 Memcached

为 PHP 安装 Memcached 扩展连接 Memcached http://www.linuxidc.com/Linux/2016-05/131690.htm

Linux 下 Memcached 安装与启用  http://www.linuxidc.com/Linux/2016-07/133423.htm

Memcached 构建缓存加速集群部署 http://www.linuxidc.com/Linux/2017-02/140656.htm

Linux CentOS 7 下通过 Memcached 实现 Session 共享  http://www.linuxidc.com/Linux/2016-09/135552.htm

Memcached 的安装配置及将 PHP 的 session 保存在 Memcached 中  http://www.linuxidc.com/Linux/2017-02/140679.htm

Linux CentOS 7 下通过 Memcached 实现 Session 共享  http://www.linuxidc.com/Linux/2016-09/135552.htm

CentOS 6.6 下 Memcached 源码安装配置  http://www.linuxidc.com/Linux/2015-09/123019.htm

Linux CentOS 7 下 Memcached 安装与配置  http://www.linuxidc.com/Linux/2016-09/135553.htm

Memcached 的详细介绍:请点这里
Memcached 的下载地址:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-03/141911.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计3552字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中