2017-07-27 4 views
0

私はredisでの経験はありません。私はそれをmysqlのPHP結果をキャッシュに使用したいと思いますが、複雑になっています。私は2つのテーブルredisのMysql表現

tbl_users: id, username, first_name, last_name 
tbl_orders: order_id, order_name, order_date........ 

を持っているMySQLで

私はこの場合

{ 

    "users":{ 
      "1":{username:"jane", first_name:"user1", last_name:".."} 
      "2":{username:"jane", first_name:"user1", last_name:".."} 
       ........... 
      } 
    "orders":{ 
       "1":{order_name:"jane", order_date:"user1",....} 
       "1":{order_name:"jane", order_date:"user1", .....} 
      } 
     } 

    } 

ように見えるJSONをpicured Redisの中で、ユーザーと注文テーブルの両方のレコードを保存したいと仮定私が作成する必要があります2つのRedisサーバー、1つはユーザー用、もう1つは注文用です。

+0

2台のRedisサーバーを作成しないでください。これらのサンプル結果を格納するためにどのような鍵を使用しますか? –

+0

上記は、私のデータがmysqlでどのように見えるかを表しています。私は多くのユーザーがいるusersテーブルを持っています。また、いくつかの注文の注文テーブルを今私はredisでデータを保存することができ、すべてのユーザーとすべての注文を個別に –

+0

すべてのユーザーまたは特定のユーザーを取得できるようにしますか? –

答えて

0

まず、Redisが何であり、何ができるのかを理解するために、An introduction to Redis data types and abstractionsを読む必要があります。

あなたはRedisの中にキャッシュする3つの事持っているように聞こえる:

  1. 特定のユーザー: これはRedisのがせいぜいであるものですが。 MySQLはすでにtbl_users内のすべての行を返すことで、非常に高速になりますので、これはおそらく、Redisの中に価値のキャッシングではありません : SET user:1 '{username:"jane", first_name:"user1", last_name:".."}'、 は当時GET user:1
  2. すべてのユーザーを持つユーザーJSONをお読みください。 Redisリストを使用して(LPUSH経由で、すべてをLRANGE {listname} 0 -1にすることで)キャッシュすることができます。 しかし、現時点ではデータベーステーブルの機能を複製しているだけなので、実際にはお勧めしません。特定のユーザーため
  3. 受注: ここでも、MySQLはtbl_ordersに良いindexで、あなたのためのこれを効率的に行うことができる必要がありますが、Redisのは、同様に、リストを使用してそれをキャッシュすることができます。