はい、それは効率に関係しています。
Redisのコア開発者の1人であるPieterNoordhuisに意見を求めたところ、Redisハッシュを使用することを提案しました。 Redisのハッシュは、メモリ内で非常に効率的にエンコードできる辞書です。 Redis設定の「hash-zipmap-max-entries」は、効率的にエンコードされている間にハッシュが持つことができるエントリの最大数を構成します。この設定は約1000が最適であることがわかりました。それより高くなると、HSETコマンドは顕著なCPUアクティビティを引き起こします。詳細については、zipmapソースファイルを確認してください。
小さなハッシュは特別な方法(zipmaps)でエンコードされます。これはメモリ効率が高いですが、操作はO(1)ではなくO(N)になります。したがって、1kフィールドの100 zipmapではなく100kフィールドの1つのzipmapを使用しても、メモリのメリットはありませんが、すべての操作が100倍遅くなります。