memcached--------基于centos6源码安装

栏目: 数据库 · Memcache · 发布时间: 6年前

内容简介:memcached--------基于centos6源码安装

1.  背景

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

memcached--------基于centos6源码安装

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

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

    2.  基于 libevent 的事件处理: libevent 是个程序库,他将 Linux  epoll BSD 类操作系统的 kqueue 等时间处理功能封装成统一的接口。 memcached 使用这个 libevent 库,因此能在 Linux BSD Solaris 等操作系统上发挥其高性能。

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

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

Memcached 的内存管理
        最近的 memcached 默认情况下采用了名为 Slab Allocatoion 的机制分配,管理内存。在改机制出现以前,内存的分配是通过对所有记录简单地进行 malloc free 来进行的。但是这中方式会导致内存碎片,加重操作系统内存管理器的负担。
Slab Allocator 的基本原理是按照预先规定的大小,将分配的内存分割成特定长度的块,已完全解决内存碎片问题。 Slab Allocation   的原理相当简单。将分配的内存分割成各种尺寸的块( chucnk ),并把尺寸相同的块分成组( chucnk 的集合)如图:

memcached--------基于centos6源码安装

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

Slab Allocation  的主要术语

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

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

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

2.  环境

memcached--------基于centos6源码安装

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

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

    • 解压: 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

  • 编辑脚本:

    • daemon memcached -d -p $PORT -u $USER  -m $CACHESIZE -c $MAXCONN -P /var/ru//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 memcache on

4.  测试

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

memcached--------基于centos6源码安装

启动成功

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

telnet 127.0.0.1 11211

memcached--------基于centos6源码安装

6. 总结

以需求驱动技术,技术本身没有优略之分,只有业务之分。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Code Reading

Code Reading

Diomidis Spinellis / Addison-Wesley Professional / 2003-06-06 / USD 64.99

This book is a unique and essential reference that focuses upon the reading and comprehension of existing software code. While code reading is an important task faced by the vast majority of students,......一起来看看 《Code Reading》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器