memcached配置安装说明

nosqllogo

1.memcached服务的应用 

2.memcached软件的特点 

3.部署memcached服务 

3.1安装memcached 

3.2启动memcached 

3.3 memcached相关启动参数说明 

3.4 memcached多实例启动 

3.5 关闭memcached 

3.6 测试增删查 

3.7 memcached状态查看说明 

4.部署memcache客户端 

4.1 安装memcache客户端 

4.2 修改php的配置文件php.ini 

4.3客户端测试的php文件 

4.4 memadmin管理memcached服务 

1.memcached服务的应用

  • 作为数据库前端的缓存应用。
  • session会话共享的共享存储。

2.memcached软件的特点

  • C/S模式架构,C语言2000多行。
  • 异步I/O.使用libevent作为事件通知机制。
  • 被缓存的数据以key/value键值形式存在的。
  • 全部数据存放于内存中,无持久性存储的设计,重启数据丢失。
  • 当内存中缓存的数据容量达到启动时设定的内存值时,就自动使用LRU算法删除过期的缓存数据。
  • 可以对存储的数据设置过期时间,这样过期后数据自动被删除,服务本身不会监控过期,而是在访问的时候查看key的时间戳判断是否过期。
  • memcache会对设定的内存值进行分块,分组,然后再提供服务。

3.部署memcached服务

3.1安装memcached

Memcached下载地址:http://www.danga.com/memcached/
libevent下载地址: http://monkey.org/~provos/libevent/

mkdir -p /application/tools

cd /application/tools

#下载libevent并安装

wget  http://www.monkey.org/~provos/libevent-1.4.13-stable.tar.gz

tar zxf libevent-1.4.13-stable.tar.gz

cd libevent-1.4.13-stable

./configure

make

make install

cd ..

#下载memcached并安装

wget  http://www.memcached.org/files/memcached-1.4.20.tar.gz

tar zxf memcached-1.4.20.tar.gz

cd memcached-1.4.20

./configure

make

make install

cd ..

#动态链接库

echo "/usr/local/lib" >>/etc/ld.so.conf
ldconfig

3.2启动memcached

[root@memcached ~]# which memcached

/usr/local/bin/memcached

[root@memcached ~]# memcached -u root -d -m 10M -p 11211 -c 8192

[root@memcached ~]# lsof -i:11211

COMMAND     PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

memcached 20787 root   26u  IPv4  47256      0t0  TCP *:memcache (LISTEN)

3.3 memcached相关启动参数说明

-p指定memcahced服务监听TCP端口号。默认11211.

-m指定memcached服务可以缓存数据的最大内存。默认为64MB。

-u运行memcached的用户。

-d作为守护进程在后台运行。

-c最大的并发连接数,默认是1024,按照服务器的并发访问量来设定。

-vv以very vrebose模式启动,调试信息和错误输出到控制台。

-P设置保持memcached的PID文件。

-l指定监听的服务器IP地址。

-h帮助。

3.4 memcached多实例启动

[root@memcached ~]# memcached -u root -d -m 1M -p 11212 -c 8192

[root@memcached ~]# memcached -u root -d -m 1M -p 11213 -c 8192

[root@memcached ~]# netstat -lnpt|grep memcached

tcp        0      0 0.0.0.0:11211               0.0.0.0:*                   LISTEN      20787/memcached

tcp        0      0 0.0.0.0:11212               0.0.0.0:*                   LISTEN      20804/memcached

tcp        0      0 0.0.0.0:11213               0.0.0.0:*                   LISTEN      20811/memcached

3.5 关闭memcached

方法一:

[root@memcached ~]# pkill memcached

[root@memcached ~]# netstat -lnpt|grep memcached

[root@memcached ~]#

方法二:

ps -ef|grep memcached|grep -v grep|awk '{print $2}'|xargs kill
kill `cat /var/run/11211.pid`
pkill memcached

3.6 测试增删查

[root@memcached ~]# printf "set key008 0 0 10\r\noldboy0987\r\n"|nc 127.0.0.1 11211 #添加一个字段key为key008,value为oldboy0987。

STORED

[root@memcached ~]#  printf "get key008\r\n"|nc 127.0.0.1 11211  #查询key为key008的字段

VALUE key008 0 10

oldboy0987

END

[root@memcached ~]#  printf "delete key008\r\n"|nc 127.0.0.1 11211  #删除

DELETED

[root@memcached ~]#  printf "get key008\r\n"|nc 127.0.0.1 11211

END

还可以用telnet操作:

[root@oldboy ~]# telnet 127.0.0.1 11211

Trying 127.0.0.1...

Connected to 127.0.0.1.

Escape character is '^]'.

set user01 0 0 6

oldboy

STORED

get user01

VALUE user01 0 6

oldboy

END

delete user01

DELETED

get user01

3.7 memcached状态查看说明

stats setting   可以查看一些memcached 设置 例如 线程数。。。
stats slabs     查看slabs  相关情况
stats items     查看Items 相关情况
stats sizes     查看 存在的Item 个数和大小
stats cachedump 查看 key value
stats reset     清理统计数据

  • 部署memcache客户端

前提:要在php的服务器上

4.1 安装memcache客户端

mkdir -p /application/tools

cd /application/tools

wget http://pecl.php.net/get/memcache-2.2.5.tgz

tar zxvf memcache-2.2.5.tgz

cd memcache-2.2.5

/application/php/bin/phpize

./configure --enable-memcache --with-php-config=/application/php/bin/php-config --with-zlib-dir

make

make install

cd ..

 123

4.2 修改php的配置文件php.ini

extension_dir = "./"

修改为

extension_dir = "/application/php5.2.6/lib/php/extensions/no-debug-zts-20060613/"

并添加一行

extension=memcache.so

4.3客户端测试的php文件

<?php

$memcache = new Memcache; //创建一个memcache对象

$memcache->connect('10.0.0.19', 11212) or die ("Could not connect"); //连接Memcached服务器

$memcache->set('key001', 'oldboy001'); //设置一个变量到内存中,名称是key001值是oldboy001

$memcache->set('key002', 'oldboy002'); //设置一个变量到内存中,名称是key002值是oldboy002

$get_value01 = $memcache->get('key001'); //从内存中取出key001的值

$get_value02 = $memcache->get('key002'); //从内存中取出key002的值

echo $get_value02."<br>";

echo $get_value01;

?>

4.4 memadmin管理memcached服务

wget http://www.junopen.com/memadmin/memadmin-1.0.12.tar.gz

具体操作略

4.5 web session共享配置

编辑php.ini

注意:以下两条要加在extension = memcache.so的后面

session.save_handler = memcache

session.save_path = "tcp://memcached.etiantian.org:11211"


发表评论

登录 后发表评论.