php - Redis 是否可以像 PHP 中的 MySQL 一样查询?

标签 php mysql laravel redis

<分区>

我目前有一个标准的 Laravel/MySQL 应用程序设置,但事实证明我们需要创建某种键值存储。我没有在 MySQL 中创建一些庞大的、陈旧的关系困惑,而是希望按照 Redis 的方式实现一些东西,并希望在我花一周的时间四处游荡之前确保我了解 Redis 的功能以及它是否合适。

理想情况下,我会有一个带有表单的 MySQL 表

id | form
1  | 'Contact'
2  | 'Header'
3  | 'Homepage - Side'

并且线索来自这些表格到另一个MySQL表中

编号 |时间戳 |状态编号 |表格编号 1 | 2014-01-01 14:13:23 | 1 | 1个 2 | 2014-01-02 14:13:23 | 1 | 2

然后会有与线索相关的数据的 Redis 键值存储..

key          | value         | lead_id
'email'      | '123@123.com' | 1
'name'       | 'Curly'       | 1
'best_time   | 'Evening'     | 2
'name'       | 'Moe'         | 2
'email'      | 'Larry'       | 3

我的问题是:

  • 结合使用 MySQL/Redis 是否是解决此问题的正确方法?
  • 我能否像来自 MySQL 一样查询/排序/过滤来自 Redis 的数据?

最佳答案

Redis 是一个非常好的键/值存储,但它也有其局限性。首先,一切都必须适合内存。这使得它对于更大的数据集不切实际。除非您以 Redis 的方式做事,接受它的怪癖和局限性,否则使用起来也有点困难。

在一个数据库中有一些数据而在另一个数据库中有一些数据会使事情变得特别尴尬,所以除非您别无选择,否则我会避免这样做。

在您的情况下,您可能需要的是比 MySQL 更好的文档存储。您可能会考虑具有出色的 JSON 支持的 CouchDB、MongoDB 或 PostgreSQL。 MySQL 在此类功能方面远远落后。

如果您需要一个无模式数据库,也许您需要一个原生支持它的数据库。

关于php - Redis 是否可以像 PHP 中的 MySQL 一样查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25896111/

相关文章:

javascript - Xdebug 忽略 php 代码中的断点

PHP 插入 MySQL 数组,其中一个字段是在第一个 SQL 语句中创建的所有数据库字段

MySQL 下一行 ORDER BY 多列 JOIN 表 2

laravel - 针对一对多关系的工厂播种时,字段没有默认值

php - 如何更新实时 Laravel Web 应用程序的功能?

php - Laravel:分页 json 响应

php - 动态测试工具

php - CKEditor 忽略了我的 CSS

MySQL 子记录

php - Laravel 在类构造函数中检索参数