利用阿里云搭建WordPress网站 – 数据库缓存和管理

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
数据管理 DMS,安全协同 3个实例 3个月
推荐场景:
学生管理系统数据库
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
简介: WordPress是一种非常流行的博客网站平台,也可以当作一个内容管理系统(CMS)来使用, 是世界上使用最广泛的博客系统之一。WordPress有非常多优秀的插件,使得这个开源产品变得非常容易扩展,满足不同的需求。

WordPress是一种非常流行的博客网站平台,也可以当作一个内容管理系统(CMS)来使用, 是世界上使用最广泛的博客系统之一。WordPress有非常多优秀的插件,使得这个开源产品变得非常容易扩展,满足不同的需求。
我准备利用一个系列的文章,来展示如果利用阿里云的各种产品(弹性计算,数据库,安全等等),搭建一个完整的WordPress网站。内容包括:

四、数据库缓存和管理

当网站业务量逐渐增加,数据库往往是整个系统中第一个遇到性能瓶颈的组件。这个时候需要通过对数据库进行优化和管理,来提高数据库的吞吐能力。
针对网站类应用,读多写少是常态,因此针对性地进行数据库读写分离往往是一个好办法。阿里云RDS数据提供的读写分离功能可以对外提供一个单一的数据库读写入口,对系统的侵入性很小,是个非常理想的解决方案。除此之外,业界最常用的方法应该是在整个架构中增加内存数据库来进行数据缓存,一般来说会选用Redis数据库来进行实施。由此,系统的数据部分变得越来越复杂,因此还需要利用DMS这种管理工具来进行方便的运维。
这个部分的架构图如下,基于上一个版本增加了:

  • MySQL数据库读写分离:存放用户向WordPress上传的附件
  • CDN:通过CDN边缘节点的缓存机制加速附件静态文件的读取

1

用DMS管理后台数据

阿里云的DMS数据管理产品在官网上的口号是“比phpMyAdmin更强大,比Navicat更易用”,还是挺霸气的。其主要作用当然是聚合所有数据库的管理(无论在不在阿里云上),方便DBA对库表进行各种操作和维护。此外比较讨喜的功能是利用DSQL(通过Dlink)进行跨库查询,在微服务架构应用中进行数据验证的时候常常会用到。这里简单演示一下免费版本的基本功能,专业版和企业版需要额外购买,同时也去除掉一些限制并提供一些额外功能。

最简单登陆DMS的方法是在RDS上面点击“登陆数据库”,输入用户名和密码即可。为了演示方便,我就直接用了之前设置的高权限账号root。
2

在界面的昨天可以看到数据库选择和数据表列表,通过这里我们可以发现WordPress的数据结构还是很简单的,基本上可以通过表名猜测到该表的用途,比如“wp_posts”自然就是存储帖子啦。注意“wp_”这个前缀是可以定制的哦,如果不知道怎么做的同学注意回看这个系列的第一篇。
试着写个SELECT语句看看里面的内容,很容易可以找到WordPress在安装时默认po的第一篇hello world的帖子。

3
4

回到页面上修改内容一下,保存,然后再回到DMS重跑一次SQL,可以看到新的内容已经写入了数据表中。

5
6

MySQL读写分离

MySQL读写分离这个功能,如果是自建数据库的话,需要利用Mycat做主从同步,做心跳检测,还得自己运维,还是比较麻烦的。阿里云MySQL直接提供这个功能还是很贴心,在数据库实例的“数据库代理”标签就可以打开了。首先选择添加只读实例,稍等一会儿,一个新的只读实例就创建好了。创建只读实例时会从备实例复制数据,数据与主实例一致,主实例的数据更新也会在主实例完成操作后立即自动同步到所有只读实例,完美。
7
8
9

在实例列表中会发现增加了一个打着“R”标的数据库实例。只读实例数量有限制,<64GB的主实例最多挂5个,≥64GB的主实例最多挂10个,一般中小网站挂3个就差不多了。
10

只读实例有自己的内网地址,可以用程序控制什么时候使用主实例,什么时候使用只读实例。当然大多数情况下,让MySQL自己决定就好了。我们回到主实例中,设置读写分离,将所有的读权重都给只读实例好了。这样就可以得到主实例的读写分离地址啦。

11
12

获得读写分离地址后,我们需要回到WordPress的配置文件wp-content/wp-config.php中,将之前填写的主库内网地址替换成刚刚获得的读写分析地址,并重启。
13

完成后在网页上浏览一下,从后端只读实例的监控可以看到IOPS和连接数等数据的变化,可以确定读写分离已经起作用了。
14

MySQL读写分离

Redis数据库作为一种最常用的缓存数据库,几乎在各行各业的应用中都可以看到。为了将Redis利用起来,系统程序需要有一定的改造,WordPress则是通过插件来支持。一般来说还需要做高可用,以避免Redis失效而造成的雪崩效应,拖垮整个系统。因此大多数情况下都应该选择集群版多节点,以确保缓存的高可用。实际购买的时候注意VPC并设置密码。
15

和MySQL一样,使用之前要开白名单。这种安全机制在阿里云数据库基本是标配,配置方法也基本一样,把ECS服务器加进去就可以了。
16
17
18
19

白名单配置完成后,记录下内网地址,后面会用到。
20

然后在WordPress中安装插件Redis Object Cache。安装后打开配置项,可以发现这个插件需要修改配置才可以使用。但是这个插件的配置居然不是可视化的,还需要从后台修改配置文件,差评。
21
22

插件的配置信息是放在配置文件wp-content/wp-config.php中的。需要增加/修改以下代码(其中WP_REDIS_PASSWORD需要设置成创建Redis实例时设置的密码):

/** setup for Redis Object Cache **/
define('WP_REDIS_CLIENT', 'pecl');
define('WP_REDIS_SCHEME', 'tcp');
define('WP_REDIS_HOST', 'Redis实例的内网地址');
define('WP_REDIS_DATABASE', '0');
define('WP_REDIS_PASSWORD', '创建Redis实例时候设置的密码');
define('WP_CACHE_KEY_SALT', 'wp_');
define('WP_REDIS_MAXTTL', '86400');

23

配置完成后,再回到页面上的插件配置项上看一下Redis的配置,如果正确无误的话,选择“Enable Object Cache”,在状态栏应该显示“Connected”就表示配置完成了。
24
25

试着使用一下WordPress,然后我们利用DMS数据管理再看看Redis的效果。同样也是在Redis实例页面上方选择“登陆数据库”,然后应该可以看到许多Key-Value对和CPU、内存、命中率等指标,这就表示Redis已经开始为网站提供缓存服务啦。
26
27

相关实践学习
MySQL基础-学生管理系统数据库设计
本场景介绍如何使用DMS工具连接RDS,并使用DMS图形化工具创建数据库表。
相关文章
|
3天前
|
运维 关系型数据库 分布式数据库
阿里云PolarDB:引领云原生数据库创新发展
阿里云PolarDB引领云原生数据库创新,2024云栖大会将分享其最新发展及在游戏行业的应用。PolarDB凭借弹性、高可用性、多写技术等优势,支持全球80多个站点,服务1万多家企业。特别是针对游戏行业,PolarDB助力Funplus等公司实现高效运维、成本优化和业务扩展。通过云原生能力,PolarDB推动游戏业务的全球化部署与快速响应,提升用户体验并保障数据安全。未来,PolarDB将继续探索AI、多云管理等前沿技术,为用户提供更智能的数据基础设施。
|
10天前
|
关系型数据库 分布式数据库 数据库
1月17日|阿里云云谷园区,PolarDB V2.0技术沙龙,畅聊国产数据库
为了助力国产化项目顺利推进,阿里云邀请企业开发者和数据库负责人到云谷园区,与PolarDB V2.0技术专家面对面交流。扫描海报二维码报名,我们将根据信息为您申请入园。欢迎参与,共同探讨PolarDB的最新技术和应用!
|
14天前
|
运维 关系型数据库 MySQL
体验领礼啦!体验自建数据库迁移到阿里云数据库RDS,领取桌面置物架!
「技术解决方案【Cloud Up 挑战赛】」上线!本方案介绍如何将自建数据库平滑迁移至云数据库RDS,解决业务增长带来的运维难题。通过使用RDS MySQL,您可获得稳定、可靠和安全的企业级数据库服务,专注于核心业务发展。完成任务即可领取桌面置物架,每个工作日限量50个,先到先得。
|
18天前
|
存储 人工智能 数据管理
媒体声音|专访阿里云数据库周文超博士:AI就绪的智能数据平台设计思路
在生成式AI的浪潮中,数据的重要性日益凸显。大模型在实际业务场景的落地过程中,必须有海量数据的支撑:经过训练、推理和分析等一系列复杂的数据处理过程,才能最终产生业务价值。事实上,大模型本身就是数据处理后的产物,以数据驱动的决策与创新需要通过更智能的平台解决数据多模处理、实时分析等问题,这正是以阿里云为代表的企业推动 “Data+AI”融合战略的核心动因。
|
17天前
|
弹性计算 运维 Ubuntu
使用阿里云服务器自动搭建WordPress网站流程,超简单by系统运维管理OOS
本教程介绍如何使用阿里云服务器(ECS)和系统运维管理OOS自动搭建WordPress网站,支持Ubuntu、CentOS及Alibaba Cloud Linux等操作系统。前提条件包括ECS实例处于运行中、有公网IP且安全组已开启80端口。安装步骤简单:进入ECS快速购买控制台选择预装WordPress,确认下单后通过管理控制台查看实例详情并开放安全组端口。最后,通过实例公网IP访问,出现WordPress登录页即表示安装成功。
|
28天前
|
存储 Oracle 关系型数据库
数据库传奇:MySQL创世之父的两千金My、Maria
《数据库传奇:MySQL创世之父的两千金My、Maria》介绍了MySQL的发展历程及其分支MariaDB。MySQL由Michael Widenius等人于1994年创建,现归Oracle所有,广泛应用于阿里巴巴、腾讯等企业。2009年,Widenius因担心Oracle收购影响MySQL的开源性,创建了MariaDB,提供额外功能和改进。维基百科、Google等已逐步替换为MariaDB,以确保更好的性能和社区支持。掌握MariaDB作为备用方案,对未来发展至关重要。
56 3
|
28天前
|
安全 关系型数据库 MySQL
MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!
《MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!》介绍了MySQL中的三种关键日志:二进制日志(Binary Log)、重做日志(Redo Log)和撤销日志(Undo Log)。这些日志确保了数据库的ACID特性,即原子性、一致性、隔离性和持久性。Redo Log记录数据页的物理修改,保证事务持久性;Undo Log记录事务的逆操作,支持回滚和多版本并发控制(MVCC)。文章还详细对比了InnoDB和MyISAM存储引擎在事务支持、锁定机制、并发性等方面的差异,强调了InnoDB在高并发和事务处理中的优势。通过这些机制,MySQL能够在事务执行、崩溃和恢复过程中保持
66 3
|
28天前
|
SQL 关系型数据库 MySQL
数据库灾难应对:MySQL误删除数据的救赎之道,技巧get起来!之binlog
《数据库灾难应对:MySQL误删除数据的救赎之道,技巧get起来!之binlog》介绍了如何利用MySQL的二进制日志(Binlog)恢复误删除的数据。主要内容包括: 1. **启用二进制日志**:在`my.cnf`中配置`log-bin`并重启MySQL服务。 2. **查看二进制日志文件**:使用`SHOW VARIABLES LIKE 'log_%';`和`SHOW MASTER STATUS;`命令获取当前日志文件及位置。 3. **创建数据备份**:确保在恢复前已有备份,以防意外。 4. **导出二进制日志为SQL语句**:使用`mysqlbinlog`
85 2