MySQL_Memcached

memcached是一套分布式的高速缓存系统,由LiveJournal的Brad Fitzpatrick开发,但目前被许多网站使用。这是一套开放源代码软件,以BSD license授权发布。 memcached缺乏认证以及安全管制,这代表应该将memcached服务器放置在防火墙后。 memcached的API使用三十二比特的循环冗余校验(CRC-32)计算键值后,将数据分散在不同的机器上。当表格满了以后,接下来新增的数据会以LRU机制替换掉。由于memcached通常只是当作高速缓存系统使用,所以使用memcached的应用程序在写回较慢的系统时(像是后端的数据库)需要额外的代码更新memcached内的数据。

memcached是一套分布式的高速缓存系统,由LiveJournal的Brad Fitzpatrick开发,但目前被许多网站使用。这是一套开放源代码软件,以BSD license授权发布。
 
(一) 服务端安装
 
1. 安装依赖包和软件
[root@iZ255aksz8rZ ~]# rpm -qa  memcached nc telnet libevent
[root@iZ255aksz8rZ ~]# yum install memcached nc telnet libevent
[root@iZ255aksz8rZ ~]# ll /usr/bin/memcached
-rwxr-xr-x 1 root root 85256 Nov 12  2010 /usr/bin/memcached
[root@iZ255aksz8rZ ~]# memcached -h                                          查看帮助文档
2.启动命令:
[root@iZ255aksz8rZ ~]# memcached -m 16m -p 11211 -d -u root -c 8192
    -m 16m : 使用多少内存           (default: 64 MB)
    -p 11211 : 使用端口号            (多实例修改端口即可)
    -d :代表使用deamon模式
    -u root :指定运行用户
    -c 8192: 最大连接并发数         (default: 1024)
[root@iZ255aksz8rZ ~]# lsof -i:11211
COMMAND    PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
memcached 6563 root   26u  IPv4 1800491      0t0  TCP *:memcache (LISTEN)
memcached 6563 root   27u  IPv4 1800496      0t0  UDP *:memcache 
 
telnet 测试:
[root@iZ255aksz8rZ ~]# telnet 127.0.0.1 11211
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
set k1 0 0 4
ning
STORED
get k1    
VALUE k1 0 4
ning
END
replace k1 0 0 6
pengju
STORED
get k1
VALUE k1 0 6
pengju
END
delete k1
DELETED
 
nc测试:
[root@iZ255aksz8rZ ~]# printf "set k1 0 0 4 ning " | nc 127.0.0.1 11211
STORED
[root@iZ255aksz8rZ ~]# printf "get k1 " | nc 127.0.0.1 11211
VALUE k1 0 4
ning
END
[root@iZ255aksz8rZ ~]# printf "replace k1 0 0 6 pengju " | nc 127.0.0.1 11211
STORED
[root@iZ255aksz8rZ ~]# printf "get k1 " | nc 127.0.0.1 11211
VALUE k1 0 6
pengju
END
[root@iZ255aksz8rZ ~]# printf "delete k1 " | nc 127.0.0.1 11211
DELETED
 
 
(二) 客户端安装
 
 
 
[root@iZ255aksz8rZ ~]# cd /tools
[root@iZ255aksz8rZ tools]# wget -q http://pecl.php.net/get/memcache-2.2.7.tgz
[root@iZ255aksz8rZ tools]# tar zxf memcache-2.2.7.tgz
[root@iZ255aksz8rZ tools]# cd  memcache-2.2.7
[root@iZ255aksz8rZ memcache-2.2.7]# /application/php/bin/phpize
Configuring for:
PHP Api Version:         20121113
Zend Module Api No:      20121212
Zend Extension Api No:   220121212
 
[root@iZ255aksz8rZ memcache-2.2.7]# ./configure --enable-memcache --with-php-config=/application/php/bin/php-config
 
[root@iZ255aksz8rZ memcache-2.2.7]# make
 
 
[root@iZ255aksz8rZ memcache-2.2.7]# make install
Installing shared extensions:     /application/php5.5.32/lib/php/extensions/no-debug-non-zts-20121212/
 
 
[root@iZ255aksz8rZ tools]# ls -l /application/php5.5.32/lib/php/extensions/no-debug-non-zts-20121212/
total 252
-rwxr-xr-x 1 root root 258024 Sep 20 21:12 memcache.so
 
一般情况下memcached需要在安装PHP之后就应该安装,如果已经搭配好环境需要做如下操作:
[root@iZ255aksz8rZ tools]# vim /application/php/lib/php.ini
 
 
[root@iZ255aksz8rZ tools]# tail -2 /application/php/lib/php.ini
extension_dir = "/application/php5.5.32/lib/php/extensions/no-debug-non-zts-20121212/"
extension=memcache.so   
此操作是为了加到php扩展文件中,重启PHP生效。
[root@iZ255aksz8rZ tools]# pkill php-fpm
[root@iZ255aksz8rZ tools]# /application/php/sbin/php-fpm 
[root@iZ255aksz8rZ tools]# lsof -i:9000
COMMAND  PID  USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
php-fpm 9347  root    7u  IPv4 1803282      0t0  TCP localhost:cslistener (LISTEN)
php-fpm 9348 nginx    0u  IPv4 1803282      0t0  TCP localhost:cslistener (LISTEN)
php-fpm 9349 nginx    0u  IPv4 1803282      0t0  TCP localhost:cslistener (LISTEN)
<?php
$memcache = memcache_connect('127.0.0.1', 11211) or die ("could not connect Mc server");
$memcache->set('key', 'hello ningpengju');
$get=$memcache->get('key');
echo $get;
?>

原文地址:https://www.cnblogs.com/liuqiang0/p/8526584.html