1. ホーム

[解決済み】JSONを表現するためのRedis文字列とRedisハッシュ:効率?

2022-04-16 14:45:08

質問

JSONのペイロードをredisに格納したいです。これを行うには、2つの方法があります。

  1. 1つは、単純な文字列のキーと値を使用します。

    キー:ユーザー、値:ペイロード(100~200KBのJSONブロブ全体)。

    SET user:1 payload

  2. ハッシュの使用

    HSET user:1 username "someone"
    HSET user:1 location "NY"
    HSET user:1 bio "STRING WITH OVER 100 lines"

ハッシュを使用する場合、値の長さは予測できないことに留意してください。上記のバイオの例のように、すべてが短い値とは限りません。

どちらがよりメモリ効率が良いでしょうか?文字列のキーと値を使うか、ハッシュを使うか?

どのように解決するのですか?

データへのアクセス方法に依存します。

オプション1に進みます。

  • ほとんどのアクセスで、ほとんどのフィールドを使用する場合。
  • 可能なキーにばらつきがある場合

オプション2に進む。

  • ほとんどのアクセスで単一フィールドのみを使用する場合。
  • どのフィールドが利用可能か常に把握している場合

追伸:経験則として、ほとんどのユースケースで必要なクエリーがより少ないオプションを選ぶとよいでしょう。