php - 亚马逊平台上的最佳实践 session 管理

标签 php mysql mongodb session amazon-web-services

我有关于 session 的性能问题, 我正在使用以下组件 1. MongoDB 作为我的应用数据库 2. MySQL 作为我的分析数据库 3. Memcache减少对MongoDB的调用

我的应用程序基于 Amazon 服务器、安装在独立实例上的 MongoDB、RDS 上的 MySQL 以及安装在独立实例上的应用程序本身。

我尝试删除 MongoDB 和 MySQL 之间的 session 处理,发现 MongoDB 具有更好的性能,但仍然很慢。

我听说过 Elastic Cache,但我不确定这是合适的解决方案,我想知道 Amazon 中 session 处理的最佳实践是什么。

顺便说一句,我的代码是用 PHP 编写的,我的客户端是 flash。

谢谢。

最佳答案

您的问题没有正确答案,因为应用程序中的变量太多,无法声明一个明显的最佳实践。以下是您应该考虑的一些注意事项:

  1. 更仔细地分析现有解决方案的性能,以便在切换到新选项之前更好地了解您遇到的问题的性质。如果正确配置和扩展,MongoDb 在许多情况下应该足够快以满足您的需求。很难解决它在 StackOverflow 上表现不佳的原因(然后可能更适合另一个 StackExchange 网站)。我已经阅读了有关您选择的任何数据库的配置建议。您可能会发现理想设置的成本超出了您的预算。
  2. 如果您管理自己的数据库服务器,则应考虑购买预配置 IOP,以帮助确保磁盘 IO 水平一致。例如,这将显着影响 MongoDb 的性能。
  3. 考虑与预算相比您需要什么样的性能
  4. 尽量减少 session 数据的大小。不幸的是,开发人员通常将其视为廉价的神奇数据桶,并且没有意识到 session 提供程序在一般意义上的工作方式的本质。磁盘 IO 将比 RAM 慢。
  5. 缓存更多,在 session 中放置更少。例如,如果需要,请在 session 中保留用户的绝对基础知识,但例如将详细信息放在 Memcached 中。
  6. 如果使用内存支持的缓存并且缓存失败或重新启动,请确定您需要哪种类型的弹性。如果您选择了一个非磁盘支持的选项并且 session 存储在那里,如果您的用户需要再次登录,他们可能会在此回收期间不高兴。
  7. AWS 团队强烈建议您考虑将 DynamoDb 作为 session 提供程序的后盾。您基本上可以购买所需的性能。它并不便宜,但您购买的是一项非常强大的服务。
  8. 使用 Elastic Cache 可能是一种选择。虽然 Memcached 选项在发生故障(数据丢失)时不提供 session 弹性,但具有主/从和多 AZ 选项的 Redis 选项可能会满足您的需求。

关于php - 亚马逊平台上的最佳实践 session 管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20091728/

相关文章:

javascript - 当div数量未知时隐藏和显示div

mysql - 在其他选择语句中选择最大值并显示嵌套选择中的相关字段

php - 如何使用 Laravel 5 在选择标签中循环数据

Mysql 选择 table1 中的所有行以及 table2 中的匹配行或返回 null

java - TokenStore MongoDB Spring OAuth2

mongodb - C# MongoDB 驱动程序 : How to insert a new subdocument into an existing document

javascript - 在 Laravel 中提交表单后记住滚动条的位置

php - 逐张从excel文件中提取数据。单工lsx

windows - 无法连接到远程 Azure Windows 计算机上运行的 MongoDB 实例

php - 在 php 中使用 group_concat 列出空值