【问题标题】:Best way to manage dynamic content without databases无需数据库即可管理动态内容的最佳方式
【发布时间】:2011-12-25 13:18:57
【问题描述】:

我正在设计一个 Web 应用程序,它将做三件事:

1) 存储一些数据

2) 让用户可以查看这些数据

3) 不时添加/删除/更改一些数据

看起来很简单,但我想通过避免使用 MySQL 和 PHP 来最小化服务器资源的使用。我的主要目标是为用户提供 HTML 文件 - posts1.html(posts2.html、posts3.html...(其中 1、2、3 是数据页数))。

通常,我会创建posts.php文件,它将查询发送到数据库,但我的数据每天只更改三五次,所以这将是一个巨大的浪费。

相反,我考虑缓存这些数据,这样可以节省大量服务器资源,但在这种情况下会涉及到一些 PHP 代码。

我的另一个想法是创建脚本,在每次更改数据库后创建所有 HTML 文件,然后用它们替换旧文件。但是如果有人请求现在正在替换的页面怎么办?这可能会导致错误,用户可以获得未完成的文件等。

但是,有一个解决方案 - 我可以将创建的 HTML 文件存储在两个目录(A 和 B)中,并使用 .htaccess 执行以下操作(伪代码):

if ( (HOURS)%2 == 0 )
   /postsX.html -> /A/postsX.html
else
   /postsX.html -> /B/postsX.html

这会给我足够的时间来升级所有文件。

我很想听听您对此有何看法以及您会怎么做?

【问题讨论】:

  • 我会使用缓存。只需构建一个普通、简单的应用程序。建立一个管理员,以便您可以轻松地编辑您的页面。然后使用缓存来加快速度并最大限度地减少对数据库的访问。

标签: php mysql .htaccess


【解决方案1】:

如果您不想使用成熟的 MySQL 服务器,请使用SQLite。它是 PHP 的一部分并且非常轻量级。然后在适当的地方添加缓存。你的其他方法对我来说听起来像是浪费时间。付出太多,收获太少。 SQLite 和缓存已经过试验和测试。

此外,除非资源不足,否则您不必担心资源浪费。此时您的应用程序听起来并不需要缩放。因此,构建最简单的可行的东西。

如果您必须采用这种静态页面方法,则将所有这些文件放入符号链接文件夹中。创建一个将静态页面生成到新文件夹中的脚本(通过 cron 或手动触发器),然后将符号链接从旧文件夹更改为新文件夹。这样您就不必担心人们会在生成内容时访问您的网站。

【讨论】:

  • 我的网站产生了大量的浏览量。这对我来说真的很重要。
  • 请定义巨大的。您是否对您的应用程序进行了概要分析?你知道你是受内存、i/o 还是 cpu 限制的吗?你是跑了还是围攻了它?你是在运行 apc 还是 memcached?
  • 每天 10000 次点击大约是每分钟 7 次。这对于任何网络服务器和数据库都很容易处理(除非您的查询非常繁重)
  • 100.000 次网页浏览,每页 20-30 次查询 --> 每天约 2.500.000 次查询。假设我想充分利用我的服务器,而我的提供商很容易被激怒
  • 通过适当的缓存和一些查询调整仍然很容易处理。
【解决方案2】:

您应该将 SQLite 与 ADODB 或任何其他受支持的数据库一起使用并实现缓存。请参阅 ADODB 兼容性列表http://phplens.com/lens/adodb/docs-adodb.htm#drivers。缓存功能真的很强大,ADODB 非常有名并且有据可查。

【讨论】:

    猜你喜欢
    • 2011-04-18
    • 1970-01-01
    • 2012-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-13
    • 1970-01-01
    相关资源
    最近更新 更多