Skip to content

毛俊的博客

Typecho开启Redis缓存

typecho, redis1 min read

最近在访问博客的时候,打开页面会稍有等待。但是页面里面的内容和数据量并不大,以文字为主,配图为辅。页面的延迟会给用户带来不好的体验,所以想着加一个缓存提高页面的响应速度。

为了统计不同地区访问的速度,我使用了站长工具的多个地点Ping检测来进行统计分析。运行完后的结果让我有些难过,除了海外地区访问速度善可外,国内大部分地区访问速度都不理想。

没加缓存前ping速度

由于个人博客是属于读多写少的业务。为了提高服务的响应速度,决定给Typecho增加缓存,这里选用目前市场上比较热门的Redis作为缓存。

Centos 7.xx环境为例,首先安装redis服务和php-redis模块服务:

1$ sudo yum -y install redis
2$ sudo yum -y install php-pecl-redis

安装完后添加开机自启服务并启动redis:

1$ sudo systemctl enable redis
2$ sudo systemctl start redis

检查redis服务是否启动成功:

1$ systemctl status redis

检查php-redis模块是否安装成功:

1php -m |grep redis

有输出内容则说明安装成功。

安装完缓存服务后,需要在Typecho中开启缓存。为了让Typecho可以支持Redis缓存,这里采用安装插件的方式让Typecho集成缓存配置功能。下载TpCache插件,放入到Typechoplugins目录下。然后去后台点击插件管理按钮并启用TpCache插件。接着点击设置按钮进入缓存配置页面,填写相应的配置信息,点击保存设置。

缓存配置

配置完缓存后,可以去页面刷新查看效果。注意缓存的配置是否开启了对登入用户失效,如果开启则用隐私窗口或者先退出账号再测试。

为了验证Redis的缓存是否在工作,可以进入服务器中输入命令redis-cli登入Redis客户端:

1$ redis-cli
2127.0.0.1:6379> keys *
31) "43efe54439fbb9c6f647120ec9e02821"
42) "fcf92f7cb8f50717bba68d1655b4c9a2"
53) "a8356448e7efd93fdc4c068d4bcb91fb"
64) "c9db569cb388e160e4b86ca1ddff84d7"
75) "04ce4f80d6159435fb9b9362fa19442d"
86) "30da41efe7963d8e81fc37eaf8b656b1"
97) "45e1dc83b4f004caf1b43bbceccad223"
108) "271f8547640193f2e8dcaa8bd6cd4be7"

如果输入keys *有输出则说明Redis缓存已经起作用了。可以通过redis-cliinfo命令查看缓存命中信息:

1$ redis-cli
2127.0.0.1:6379> info
3# Stats
4...
5keyspace_hits:26
6keyspace_misses:9
7...

或者在不进入`redis 在# Stats下看到命令和没命中的个数。通过keyspace_hits/(keyspace_hits+keyspace_misses)计算命令率。

做完缓存配置后,再次通过站长工具检测:

增加缓存后ping速度

再次通过分析不同地区平均响应时间,网站的响应速度并没有得到明显的提升。这可能由于我的网站使用了Cloudflare作为CDN,网站不备案的情况是没有国内的节点加速的。所以导致了国内访问时走的是国外的节点导致速度慢。这点可以通过站长工具分析得出,在海外地区访问的速度明显快于国内的访问速度。

同时在发布这篇文章时,我使用的服务器是阿里云香港。阿里云的出口带宽是有限制的(可以加钱提高)。所以网站的访问速度综合下来就慢了。

(完)

© 2020 by 毛俊的博客. All rights reserved.
Theme by LekoArts