2016-08-26 16 views
0

私たちはMySQLからデータベースを移動しようとしています。私たちはRedisの仕組みを理解しようとしており、この例のための最良の解決策を知りたいと考えています。製品 - >カテゴリーの関係を解決する方法リレーショナルデータベースからRedis、N対Nの関係

enter image description here

我々は 必要になります - 名前でソートされたすべての製品の

  • リストIDによってソートされたすべての製品のリスト(ASC/DESC)カテゴリーのすべての製品の

  • リストを1

  • カテゴリ1のすべての製品のリストは、名前/ ID /(ASC/DESC)でソートされています。

我々は項目1を持つすべての製品の項目1(値1属性)

  • リストを持つすべての製品の属性

    • リストでフィルタする必要があります。画像の第2の部分から0

      (値1属性)カテゴリ1の名前でソート

    この種のデータには、Redisを使用するとよいですか?

    おかげであなたはこの種のデータのためのRedisを使用することができます。もちろん、

  • 答えて

    0

    。しかし、それはリレーショナルデータベースを使うこととは違うでしょう!

    答えは、この記事で説明したように、セットを使用することです: how to have relations many to many in redis

    しかし、あなたが実際のRedisに移動する前に、あなたが解決しようとしているどのような問題を検討してください。 MySQLは今日のデータベースとしてかなり控えめで、JSONドキュメントを使用する機能のような 'schemaless/NoSQL'を持っています。あなたがレディスでできることを探究する過程にいるようです。私はRedisが非常に素晴らしい製品だと思っていますが、実際に試してみるべきですが、という方は、より現代的な機能を利用してMySQLを使い続けることを検討してください。

    +0

    グローバルでは、Magentoストアに接続するモバイルアプリケーションに取り組んでいます。 Magento REST APIの処理速度が遅すぎ、データベースが重すぎるため、アプリケーションへの迅速な対応のためにミドルウェアを作成します。 ミドルウェア製品、カテゴリ、製品の属性に格納する必要があります。フィルタ要求に対する応答を作成する必要があります。私たちのミドルウェアはキャッシュのように動作します。それは可能な限り速くなければなりません。 – Rastislav

    +0

    素晴らしい! Redisは狂った速さですが、MySQLも可能です。たぶん、Magentoのクエリだけではあまり良くありません。 http://blog.ulf-wendel.de/2013/using-phps-memcache-interface-to-query-mysql-5-7/を参照してください - 私はRedisがキャッシュに適していることに同意します。 非正規化されたバージョンをキャッシュすることを考えてみましょう。完全な製品をすべてのカテゴリでキャッシュし、完全なカテゴリをすべての製品でキャッシュし、再作成する代わりに単に更新するたびに置き換えますNMの関係。 – MichielB

    +0

    はい、すべてのリストをRedisに直接入れるのはすばらしいことですが、フィルタには多くの組み合わせがあります。カテゴリは1つの属性に似ていますが、商品にはサイズ、色、価格などがあります。複数のフィルタ=多くの組み合わせを使用できます... – Rastislav

    関連する問題