本帖最后由 liang 于 2016-4-26 21:56 编辑
网站业务架构演变过程
http://www.apelearn.com/bbs/foru ... d=8644&fromuid=6493
阅读上面的文章后做的实验
实验1一台WEB服务器一台mysql服务器
http://www.apelearn.com/bbs/foru ... =11876&fromuid=6493
实验二
在实验一的基础上web服务器上添加memcachedWeb服务器运行服务为discuz为例(其源代码中支持memcache)
1安装memcached
yum install -y epel-release ##安装前需要第三放epel源
yum install -y libevent memcached libmemcached
开机启动
chkconfig memcached on
启动命令
/etc/init.d/memcached start
查看进程是否启动
ps aux |grep memcached
查看memcached运行状态
memcached-tool 127.0.0.1:11211 stats
2php连接memcached
安装PHP扩展模块memcache.so
下载源码包
cd /usr/local/src
wget http://www.lishiming.net/data/attachment/forum/memcache-2.2.3.tgz
解压
tar zxvf memcache-2.2.3.tgz
编译安装
cd memcache-2.2.3
/usr/local/php/bin/phpize ##生成./configure 文件
./configure --with-php-config=/usr/local/php/bin/php-config
make
make install
查看生成的目录,是否生成.so模块
ls /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/
memcache.so
目录名太长修改目录名当然也可以不改
mv /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525 /usr/local/php/lib/php/extensions/memcache
在php.ini中修改扩展路径
vim /user/local/php/etc/php.ini
extension_dir = "/usr/local/php/lib/php/extensions/memcache/"
继续添加一行
extension = memcache.so
保存后可以利用 /usr/local/php/bin/php -m 检测和查看模块是否加载
测试php脚本
wget www.apelearn.com/study_v2/.memcache.txt
mv .memcache.txt test.php
/usr/local/php/bin/php test.php
测试结果
Get key1 value: This is first valueGet key1 value: This is replace valueGet key2 value: Array
(
[0] => aaa
[1] => bbb
[2] => ccc
[3] => ddd
)
3Web服务器之前discuz开启memcache
到discuz网站根目录
cd /data/www
指定memcache IP (和mysql有点像)
vim config/config_global.php
将['server'] 这行后面的引号里添加memcache所在服务器IP这里memcache和Web在一台服务器上
$_config['memory']['memcache']['server'] = '127.0.0.1';
$_config['memory']['memcache']['port'] = 11211;
$_config['memory']['memcache']['pconnect'] = 1;
$_config['memory']['memcache']['timeout'] = 1;
修改保存后登录discuz后台管理中心
点击 全局----》性能优化----》 内存优化查看下面的memcache后面是否显示 支持开启 状态
仅仅是完成实验memcache没有变更任何配置过程有误请指正
网站业务架构演变过程
http://www.apelearn.com/bbs/foru ... d=8644&fromuid=6493
阅读上面的文章后做的实验
实验1一台WEB服务器一台mysql服务器
http://www.apelearn.com/bbs/foru ... =11876&fromuid=6493
实验二
在实验一的基础上web服务器上添加memcachedWeb服务器运行服务为discuz为例(其源代码中支持memcache)
1安装memcached
yum install -y epel-release ##安装前需要第三放epel源
yum install -y libevent memcached libmemcached
开机启动
chkconfig memcached on
启动命令
/etc/init.d/memcached start
查看进程是否启动
ps aux |grep memcached
查看memcached运行状态
memcached-tool 127.0.0.1:11211 stats
2php连接memcached
安装PHP扩展模块memcache.so
下载源码包
cd /usr/local/src
wget http://www.lishiming.net/data/attachment/forum/memcache-2.2.3.tgz
解压
tar zxvf memcache-2.2.3.tgz
编译安装
cd memcache-2.2.3
/usr/local/php/bin/phpize ##生成./configure 文件
./configure --with-php-config=/usr/local/php/bin/php-config
make
make install
查看生成的目录,是否生成.so模块
ls /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/
memcache.so
目录名太长修改目录名当然也可以不改
mv /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525 /usr/local/php/lib/php/extensions/memcache
在php.ini中修改扩展路径
vim /user/local/php/etc/php.ini
extension_dir = "/usr/local/php/lib/php/extensions/memcache/"
继续添加一行
extension = memcache.so
保存后可以利用 /usr/local/php/bin/php -m 检测和查看模块是否加载
测试php脚本
wget www.apelearn.com/study_v2/.memcache.txt
mv .memcache.txt test.php
/usr/local/php/bin/php test.php
测试结果
Get key1 value: This is first valueGet key1 value: This is replace valueGet key2 value: Array
(
[0] => aaa
[1] => bbb
[2] => ccc
[3] => ddd
)
3Web服务器之前discuz开启memcache
到discuz网站根目录
cd /data/www
指定memcache IP (和mysql有点像)
vim config/config_global.php
将['server'] 这行后面的引号里添加memcache所在服务器IP这里memcache和Web在一台服务器上
$_config['memory']['memcache']['server'] = '127.0.0.1';
$_config['memory']['memcache']['port'] = 11211;
$_config['memory']['memcache']['pconnect'] = 1;
$_config['memory']['memcache']['timeout'] = 1;
修改保存后登录discuz后台管理中心
点击 全局----》性能优化----》 内存优化查看下面的memcache后面是否显示 支持开启 状态
仅仅是完成实验memcache没有变更任何配置过程有误请指正
0
$_config['memory']['memcache']['server'] = '127.0.0.1';
$_config['memory']['memcache']['port'] = 11211;
你把这里的 memcache server ip 和port 改成你的单独 memcache服务器的IP,和连接mysql一样
kevin_tao 发表于 2016-4-22 19:57
这里有没有办法把memcached像MySQL那样分离出来?分离出来之后,怎样保证访问先从memcached服务器去查找内 ...
$_config['memory']['memcache']['server'] = '127.0.0.1';
$_config['memory']['memcache']['port'] = 11211;
你把这里的 memcache server ip 和port 改成你的单独 memcache服务器的IP,和连接mysql一样
编辑回复