文档章节

centos6.5下编译安装memcache

hiwill
 hiwill
发布于 2016/06/14 17:29
字数 826
阅读 150
收藏 3

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

© 著作权归作者所有

共有 人打赏支持
hiwill
粉丝 12
博文 126
码字总数 82589
作品 0
朝阳
私信 提问
centos6.5 memcached and php-memcached安装

今天要处理一堆数据,第一次从数据库取出来最少的几千,最多的几十万,不可能每次去数据库取。第一次取出成功后,由于本地windows 没有memcached环境,只好先临时保存到一个文件中,用 arra...

邻里
2016/10/13
13
0
Centos6.5编译安装Nginx-1.6.2和简单配置

Nginx官方站点 http://nginx.org/cn/ tengine 淘宝基于nginx二次开发 http://tengine.taobao.org/ nginx已经附带memcache模块,可以管理缓存,而且支持平滑升级...... 系统Centos6.5_64位 rp...

雁南飞丶
2014/09/24
0
0
memcache的用法详解整理

memcache的应用细节和整理 环境:linux centos6.5 memcached-1.4.20.tar.gz 安装步骤: # tar -zxvf memcached-1.4.20.tar.gz # cd memcached-1.4.20 # ./configure --prefix= /usr/local/m......

许兆磊
2016/03/22
92
0
CentOS上安装Memcache及问题解决

本文记录一次在CentOS上安装Memcache的过程,其中也包含了安装过程中遇到的错误以及相应的解决方法。 Libevent安装 可以访问libevent.org网站下载最新的libevent,本文使用的是libevent-2.0....

王孟君
2016/12/26
288
0
mac os lion 编译安装php memcache 扩展

mac os lion 系统默认安装了apache和php,如果要在php中使用memcached,就需要自己安装扩展。本文采用源码方式来安装。php扩展有两种,一个是memcache,一个是memcached,下载地址为: memc...

pureboys
2013/02/02
0
2

没有更多内容

加载失败,请刷新页面

加载更多

100行Python代码理解深度学习关键概念:从头构建恶性肿瘤检测网络

在构建乳腺癌预测神经网络过程中,我们主要分为3大部分: 1.用Python从零开始创建一个神经网络,并使用梯度下降算法训练模型。 2.在该神经网络中使用威斯康星乳腺癌数据集,根据9种不同的特征...

阿里云官方博客
15分钟前
0
0
数据库表结构查询SQL

今天给大家送上两个SQL查询的方法,也许在项目中你都用过,但是,没关系,仅仅记录下,以便后面不用去查找。针对与经常写SQL的同行来说,应该是非常简单的。 查询表结构数据 SELECTt.COLU...

摘星族
19分钟前
0
0
Maven常用命令

NAME       mvn - software project management and comprehension toolDESCRIPTION       usage: mvn [options] [<goal(s)>] [<phase(s)>]OPTIONS       -am,--a......

吴伟祥
21分钟前
1
0
在Centos7中安装mysql 5.6的一些注意点

在Centos7中安装mysql 5.6的一些注意点 2018年04月08日 11:45:11 去看日出 阅读数:408 在Centos7中安装mysql 5.6的一些注意点 2015/07/18 | 数据库 | shenyi| 4 条评论 | 19733 views 1、C...

rootliu
27分钟前
1
0
关于360插件化Replugin 2.3.1版本的AS配置解决方案

编译错误:No signature of method: com.android.build.gradle.internal.scope.VariantScopeImpl.getMergeAssetsTask() is applicable for argument types: () values: [] 解决方案:加入热心......

Gemini-Lin
47分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部