在PHP中可以用与MySQL类似的方式查询Redis吗?

时间:2014-09-17 16:48:21

标签: php mysql laravel redis

我目前有一个标准的Laravel / MySQL应用程序设置,但事实证明我们需要创建某种键值存储。我没有在MySQL中创建一些大规模,古老的关系混乱,而是希望能够实现Redis的某些功能,并希望确保我拥有Redis所做的事情以及在我花费一周的时间之前是否合适。

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

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

和引导来自这些表单到另一个MySQL表

id |时间戳| status_id | form_id    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的组合是否是正确的方法?
  • 我可以查询/排序/过滤Redis中的数据,就好像它来自MySQL吗?

1 个答案:

答案 0 :(得分:2)

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

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

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

如果您需要无模式数据库,可能需要一个本机支持该数据库的数据库。