名字绕口对吧?我想不出怎么形容就一口气打了这么一段字做题目得了。
自从Nginx换到Cyberpanel后,缓存也换了远程Redis Server,不过听程序猿说还可以在本地安装OpenLiteSpeed官方魔改办Memcached做双轨运行更好,那就试试?
哦,OpenLiteSpeed家的叫LSMCD。
一、什么是LSMCD
LiteSpeed Memcached (”LSMCD“) 是LiteSpeed的持久性memcache兼容的缓存守护程序。它的性能和界面与流行的Memcached相似,并增加了高可用性的复制功能,可选择分离用户的数据。在LSMCD中,缓存数据在单箱和多箱设置中都是持久的–在更新和服务器故障的情况下保留所有缓存数据。
简单来说,传统的Memcached对象缓存是将数据存在内存中,一般更新或者重启甚至服务器故障时,这些数据都会消失,因此访客第二次访问的时候都会重新将数据缓存到内存里,因此首次访问都会变慢。但是Redis对象缓存巨头持久性,将数据存在数据库内,确保更新、重启、故障时数据不会丢失。
而LSMCD具有两者的特点。其将数据保存在硬盘上,下次访问的时候会将内存与硬盘的数据进行对比,如果一样则直接读取数据,避免了数据库的读写导致访问速度的变慢。
二、禁用原有Memcached
在安装LSMCD前,我们首先要禁用Memcached。
如果你和我一样选择Cyberpanel一键安装的方式安装了OpenLiteSpeed环境程序,那在安装 LSMCD会导致冲突,因此需要先禁用Memcached。
进入主机的SSH内,先分别输入如下内容进行回⻋
systemctl stop memcached.service
systemctl disable memcached.service
三、安装LSMCD图文教程
然后这里我们要安装LSMCD。
1、LSMCD下载
登陆SSH后,分别输入如下命令安装环境依赖,这里以Centos7为例。其他安装方式可以查看官方说明
CentOS:
yum groupinstall "Development Tools"
yum install autoconf automake zlib-devel openssl-devel expat-devel pcre-devel libmemcached-devel cyrus-sasl*
Debian/Ubunut:
sudo apt-get install git build-essential zlib1g-dev libexpat1-dev openssl libssl-dev libsasl2-dev libpcre3-dev -y
然后选择下载LSMCD,有三种方式,克隆、wget、curl,以下三种任选一种即可
- Git: git clone https://github.com/litespeedtech/lsmcd.git
- Wget: wget https://github.com/litespeedtech/lsmcd/archive/master.zip
- Curl: curl -O https://github.com/litespeedtech/lsmcd/archive/master.zip
我选择的是Wget,习惯了而已,没什么特别区别,就是wget 和curl下载下来的需要多一个解压缩步骤罢了。
unzip master.zip
如果选择Git克隆的话则无需解压。
2、LSMCD编译
接下来我们要进行LSMCD编译
cd lsmcd-master
./fixtimestamp.sh
./configure CFLAGS=" -O3" CXXFLAGS=" -O3"
make
分别输入上述命令回车。
一般顺利的话很快就编译完成。
3、安装LSMCD
输入如下命令进行安装
sudo make install
安装过程也非常快,15秒内就安装完成了。
安装完成后,是不是马上就可以启用了呢?当然不是了,还需要进行简单的配置。输入如下命令进行编辑
vi /usr/local/lsmcd/conf/node.conf
进入如下的配置页面后,按键盘上的 i 键即可进行编辑,编辑好后按键盘的 esc 键退出,再输入 :wq 后回车即可退出。
Repl.HeartBeatReq=30
Repl.HeartBeatRetry=3000
Repl.MaxTidPacket=2048000
Repl.GzipStream=YES
Repl.LbAddrs=127.0.0.1:12340
Repl.ListenSvrAddr=127.0.0.1:12340
REPL.DispatchAddr=127.0.0.1:5501
RepldSockPath=/tmp/repld.usock
CACHED.PRIADDR=127.0.0.1:11000
CACHED.ADDR=127.0.0.1:11211
#CACHED.ADDR=UDS:///tmp/lsmcd.sock
#default is 8, it can be bigger depending on cache data amount
Cached.Slices=8
Cached.Slice.Priority.0=100
Cached.Slice.Priority.1=100
Cached.Slice.Priority.2=100
Cached.Slice.Priority.3=100
Cached.Slice.Priority.4=100
Cached.Slice.Priority.5=100
Cached.Slice.Priority.6=100
Cached.Slice.Priority.7=100
Cached.ShmDir=/dev/shm/lsmcd
#If you change the UseSasl or DataByUser configuration options you need to remove the ShmDir folder and contents.
#Cached.UseSasl=true
#Cached.DataByUser=true
#Cached.Anonymous=false
#Cached.UserSize=1000
#Cached.HashSize=500000
#CACHED.MEMMAXSZ=0
#CACHED.NOMEMFAIL=false
##this is the global setting, no need to have per slice configuration.
User=nobody
Group=nobody
#depends CPU core
CachedProcCnt=4
CachedSockPath=/tmp/cached.usock.
#TmpDir=/tmp/lsmcd
LogLevel=notice
#LogLevel=dbg_medium
LogFile=/tmp/lsmcd.log
一般我们默认安装在本机上,因此IP是127.0.0.1,端口也未进行改变的话,沿用11211。
这里我们要将里面的User及Group改为安装PHP使用的用户名及用户组。如何查看可以参考如下命令
cat /etc/passwd |cut -f 1 -d :
找到自己的用户名后,一般情况下用户组和用户名是一样的。比如我的的PHP指定的用户是test123,因此将其改为 User=test123 及 Group=test123 。另外将 CachedProcCnt=4 的数值改为与自己CPU核数一样。比如主机为双核,那就改为2,单核那就改为1。因为与使用多线程的Memcached不同,LSMCD使用多处理。推荐值不超过系统中的CPU数量。
做好设置保存后,最后即可开启相应的防火墙端口,分别是 12340、5501、11000,至于11211端口一般前面使用Memcached的时候已经开启了,这里就不用开启了。如果端口不开启的话,那服务是启动失败的。
输入如下命令进行开启或者停止
sudo systemctl start lsmcd
sudo systemctl stop lsmcd
sudo systemctl enable lsmcd
sudo systemctl disable lsmcd
详细配置说明可以参考官方的说明材料
四、测试LSMCD启用
开启LSMCD后,如何测试是否是正常启用的呢,这里可以输入如下命令查看
systemctl status lsmcd
如下图,状态为激活启用
输入命令 telnet 127.0.0.1 11211 ,然后再输入 stats 命令查看
进入后可以看到类似下图
这里大家注意,其中的版本1.0.0指的是打印的API版本,并非LSMCD版本,如果要查看LSMCD版本的刷,输入 quit 命令退出来后,输入如下命令查看LSMCD版本,可以看到版本是 1.4.20
接下来登陆WordPress后台,打开LiteSpeed Cache插件,找到【缓存规则】-【对象】,查看连接是否通过
五、总结
因为OpenLiteSpeed及LSMCD的官方材料不多,导致安装时候会出现各类问题,许多站长也是摸着石头过河后,将过程分享出来,希望给大家一些参考。至于LSMCD是否比Memcached好用或者优秀,后面吐槽君也会在万事屋做相应的测试。
本文转自搬主题:说明材料