企业级memcached部署(session共享)
服务端部署
第一个里程碑:安装依赖关系
Memcache用到了libevent这个库用于Socket的处理。
第二个里程碑:安装memcache
第三个里程碑:启动memcached服务
注:memcached****可以同时启动多个实例,端口不一致即可。
<td style="width: 290.55pt; border-top-width: 1pt; border-right-width: 1pt; border-bottom-width: 1pt; border-top-color: #c0504d; border-right-color: #c0504d; border-bottom-color: #c0504d; border-left: none; background: #c0504d; padding: 0cm 5.4pt;" valign="top" width="387">
<p class="MsoNormal" style="text-align: center; mso-yfti-cnfc: 1;" align="center">
<span style="font-family: '微软雅黑',sans-serif; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'; color: white; mso-themecolor: background1; mso-bidi-font-weight: bold;">参数说明</span>
</p>
</td>
</tr>
<tr>
<td style="width: 120.5pt; border-right-width: 1pt; border-bottom-width: 1pt; border-left-width: 1pt; border-right-color: #d99594; border-bottom-color: #d99594; border-left-color: #d99594; border-top: none; background: #f2dbdb; padding: 0cm 5.4pt;" valign="top" width="161">
<p class="MsoNormal" style="text-align: center; mso-yfti-cnfc: 68;" align="center">
<strong><span lang="EN-US">-m</span></strong>
</p>
</td>
<td style="width: 290.55pt; border-top: none; border-left: none; border-bottom-width: 1pt; border-bottom-color: #d99594; border-right-width: 1pt; border-right-color: #d99594; background: #f2dbdb; padding: 0cm 5.4pt;" valign="top" width="387">
<p class="MsoNormal">
<span lang="EN-US">max memory to use for items in megabytes (default: 64 MB)</span>
</p>
</td>
</tr>
<tr>
<td style="width: 120.5pt; border-right-width: 1pt; border-bottom-width: 1pt; border-left-width: 1pt; border-right-color: #d99594; border-bottom-color: #d99594; border-left-color: #d99594; border-top: none; padding: 0cm 5.4pt;" valign="top" width="161">
<p class="MsoNormal" style="text-align: center; mso-yfti-cnfc: 4;" align="center">
<strong><span lang="EN-US">-p</span></strong>
</p>
</td>
<td style="width: 290.55pt; border-top: none; border-left: none; border-bottom-width: 1pt; border-bottom-color: #d99594; border-right-width: 1pt; border-right-color: #d99594; padding: 0cm 5.4pt;" valign="top" width="387">
<p class="MsoNormal">
<span lang="EN-US">TCP port number to listen on (default: 11211)</span>
</p>
</td>
</tr>
<tr>
<td style="width: 120.5pt; border-right-width: 1pt; border-bottom-width: 1pt; border-left-width: 1pt; border-right-color: #d99594; border-bottom-color: #d99594; border-left-color: #d99594; border-top: none; background: #f2dbdb; padding: 0cm 5.4pt;" valign="top" width="161">
<p class="MsoNormal" style="text-align: center; mso-yfti-cnfc: 68;" align="center">
<strong><span lang="EN-US">-d</span></strong>
</p>
</td>
<td style="width: 290.55pt; border-top: none; border-left: none; border-bottom-width: 1pt; border-bottom-color: #d99594; border-right-width: 1pt; border-right-color: #d99594; background: #f2dbdb; padding: 0cm 5.4pt;" valign="top" width="387">
<p class="MsoNormal">
<span lang="EN-US">run as a daemon</span>
</p>
</td>
</tr>
<tr>
<td style="width: 120.5pt; border-right-width: 1pt; border-bottom-width: 1pt; border-left-width: 1pt; border-right-color: #d99594; border-bottom-color: #d99594; border-left-color: #d99594; border-top: none; padding: 0cm 5.4pt;" valign="top" width="161">
<p class="MsoNormal" style="text-align: center; mso-yfti-cnfc: 4;" align="center">
<strong><span lang="EN-US">-u</span></strong>
</p>
</td>
<td style="width: 290.55pt; border-top: none; border-left: none; border-bottom-width: 1pt; border-bottom-color: #d99594; border-right-width: 1pt; border-right-color: #d99594; padding: 0cm 5.4pt;" valign="top" width="387">
<p class="MsoNormal">
<span lang="EN-US">assume identity of <username> (only when run as root)</span>
</p>
</td>
</tr>
<tr>
<td style="width: 120.5pt; border-right-width: 1pt; border-bottom-width: 1pt; border-left-width: 1pt; border-right-color: #d99594; border-bottom-color: #d99594; border-left-color: #d99594; border-top: none; background: #f2dbdb; padding: 0cm 5.4pt;" valign="top" width="161">
<p class="MsoNormal" style="text-align: center; mso-yfti-cnfc: 68;" align="center">
<strong><span lang="EN-US">-c</span></strong>
</p>
</td>
<td style="width: 290.55pt; border-top: none; border-left: none; border-bottom-width: 1pt; border-bottom-color: #d99594; border-right-width: 1pt; border-right-color: #d99594; background: #f2dbdb; padding: 0cm 5.4pt;" valign="top" width="387">
<p class="MsoNormal">
<span lang="EN-US">max simultaneous connections (default: 1024)</span>
</p>
</td>
</tr>
第四个里程碑:写入开机自启动
客户端部署(web服务器)
第一个里程碑:安装PHP memcache 扩展插件
命令集如下:
完整操作过程:
查看是否安装成功
memcache.so__表示插件安装成功。
第二个里程碑:配置memcache****客户端使其生效
第三个里程碑:检测语法,重启服务
浏览器_访问__phpinfo__页面出现memcache__信息表示配置成功_。
第四个里程碑:编写测试memcache****文件
3 $memcache = new Memcache; 4 $memcache->connect(’172.16.1.31’, 11211) or die ("Could not connect NFS server"); 5 $memcache->set(’key’, ’Memcache connect OK’); 6 $get = $memcache->get(’key’); 7 echo $get; 8 ?>
测试出现Memcache connect OK 表示连接成功
第五个里程碑:修改php****配置_(_设置session__共享)
原配置
修改为:
修改之前phpinfo__信息
修改之后phpinfo__信息
到此企业级memcache(session共享)部署完毕
1.1.1 Memcached在集群中session共享存储的优缺点
优点:
1)读写速度上会比普通文件files速度快很多。
2)可以解决多个服务器共用session的难题。
缺点:
1)session数据都保存在memory中,持久化方面有所欠缺,但对session数据来说不是问题。
2)一般是单台,如果部署多台,多台之间数据无法同步。通过hash算法分配依然有session丢失的问题。
替代方案:
1)可以用其他的持久化系统存储session,例如redis,ttserver来替代memcached.
2)高性能并发场景,cookies效率比session要好很多,因此,大网站都会用cookies解决会话共享的问题.
3)一些不好的方法:lvs-p,nginx ip_hash,不推荐使用.
DedeCMS使用memcache问题
解决办法:
修改文件一:
修改文件二:
让DedeCMS直接使用memcache的共享.解决问题.
特别感谢:元芳
- 原文作者:惨绿少年
- 原文链接:https://clsn.io/clsn/lx850.html
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。