centos6.5下编译安装memcache

爷,独闯天下 提交于 2019-12-01 17:23:39

Memcache是一个自由和开放源代码、高性能的内存对象缓存系统。用于加速动态web应用程序,减轻数据库负载。它可以应对任意多个连接,使用非阻塞的网络IO。由于它的工作机制是在内存中开辟一块空间,然后建立一个Hash表,Memcached自管理这些Hash表。
Memcached简单而强大,它简单的设计促进迅速部署,易于发展所面临的问题,解决了很多大型数据缓存。它的API适配各种最流行的语言。
Memcache官方网站:http://memcached.org/

memcache 具有以下的特点:
1)协议简单:memcached的服务器客户端通信并不使用复杂的XML等格式,而使用简单的基于文本行的协议。因此,通过telnet也能在memcached上保存数据、取得数据。
2)基于libevent的事件处理:libevent是个程序库,它将Linux的epoll、BSD类操作系统的kqueue等事件处理功能封装成统一的接口。即使对服务器的连接数增加,也能发挥O(1)的性能。memcached使用这个libevent库,因此能在Linux、BSD、Solaris等操作系统上发挥其高性能。
3)内置内存存储方式:为了提高性能,memcached中保存的数据都存储在memcached内置的内存存储空间中。由于数据仅存在于内存中,因此重启memcached、重启操作系统会导致全部数据消失。另外,内容容量达到指定值之后,就基于LRU(Least Recently Used)算法自动删除不使用的缓存。memcached本身是为缓存而设计的服务器,因此并没有过多考虑数据的永久性问题。
4)memcached不互相通信的分布式:memcached尽管是“分布式”缓存服务器,但服务器端并没有分布式功能。各个memcached不会互相通信以共享信息。那么,分布式是完全取决于客户端的实现。

memcached怎么工作
Memcached就像一个巨大的、存储了很多<key,value>对的哈希表。通过key,可以存储或查询任意的数据。 
客户端可以把数据存储在多台memcached上。当查询数据时,客户端首先参考节点列表计算出key的哈希值(阶段一哈 希),进而选中一个节点;客户端将请求发送给选中的节点,然后memcached节点通过一个内部的哈希算法(阶段二哈希),查找真正的数据 (item)。 

centos6.5 x86_64下编译安装

wget https://github.com/libevent/libevent/releases/download/release-2.0.22-stable/libevent-2.0.22-stable.tar.gz

tar xzvf libevent-2.0.22-stable.tar.gz

cd libevent-2.0.22-stable

./configure --prefix=/usr/local/libevent

make && make install

wget https://memcached.org/files/memcached-1.4.38.tar.gz

tar zxvf memcached-1.4.38.tar.gz

cd memcached-1.4.38

./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent

make && make install

vi memcached

#!/bin/bash 
# description: Start and stop the Memcached services. 
# pidfile: /tmp/memcached1.pid 
# config:  /usr/local/memcached 
# chkconfig: - 55 45 
# source function library 
. /etc/rc.d/init.d/functions
memcached="/usr/local/memcached/bin/memcached"
[ -e $memcached ] || exit 1 
start() 

echo "Starting memcached:"
daemon $memcached -d -m 1000 -u root -l 127.0.0.1 -p 11211 -c 1500 -P /tmp/memcached1.pid 

stop() 

echo "Shutting down memcached"
killproc memcached 

case "$1" in
start) 
start 
;; 
stop) 
stop 
;; 
restart) 
stop 
sleep 3 
start 
;; 
*) 
echo $"Usage: $0 {start|stop|restart}"
exit 1 
esac
exit $?

chmod +x memcached

cp memcached /etc/init.d/memcached

chkconfig --add memcached

chkconfig --level 35 memcached on

service memcached start

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!