redisコマンドはどのようにして "member1"を識別するためにセット全体をスキャンする必要があるので、複雑さO(1)はどれくらい複雑ですか?redisについての混乱SISMEMBERの複雑さ
0
A
答えて
0
ハッシュテーブルを使用しているためです。
セットのすべての要素は、fc5e038d38a57032085441e7fe7010b0
のような32ビットの文字列にハッシュされます。 32ビットの文字列は、異なる文字列に対して常に異なっています。そして、元の文字列の長さに関わらず、ハッシュされた文字列は常に32ビット長になります。
文字列がセットに含まれているかどうかを知りたい場合は、最初に元の文字列をハッシュしてから、その32ビット文字列がそのセットに含まれているかどうかを確認します。
たとえば、 "helloworld"の32ビット文字列がfc5e038d38a57032085441e7fe7010b0
である場合、 "helloworld"がセットに含まれているかどうかを確認したい場合は、fc5e038d38a57032085441e7fe7010b0
がセットになっているかどうかを確認します。
辞書の中の単語を探すのと同じです。
- Redisの
f
- RedisのをSTARTSWITHすべての文字列は、その第二チャーステップ1
- Redisの結果から
c
あるステップ2の結果から、第チャー5
ているすべての文字列を検索し、すべての文字列を検索し発見 - 繰り返して繰り返します。
元の文字列の長さにかかわらず、redisは最大で32回のクエリで、元の文字列がセットに含まれているかどうかを知ることができます。
したがって、複雑さはO(1)
関連する問題
- 1. 時間の複雑さの混乱
- 2. Redis +コンフィグレーションの混乱を
- 3. スペースの複雑さに関する一般的な混乱
- 4. pythonジェネレータ時間の複雑さの混乱
- 5. Redis ZRANGEBYLEXコマンドの複雑さ
- 6. クレーネの星についての混乱
- 7. Javaのジェネリックについての混乱
- 8. zaddのredisでの時間複雑さ
- 9. 時間複雑度の下限の混乱
- 10. ロックについての混乱
- 11. リクルティブ関数についての混乱
- 12. ウェブアノテーションについての混乱
- 13. Two's Complementについての混乱
- 14. Firebaseについての混乱startAt()
- 15. findOne()とremove()についての混乱
- 16. 混乱についてのOleDbCommand
- 17. mongodb java driverについての混乱
- 18. バンドルラーパスについての混乱
- 19. 内部リンケージについての混乱
- 20. PayPal API Version# 'についての混乱?
- 21. URLマッピングについての混乱
- 22. 混乱エクトの関係について
- 23. は、機能についての混乱:
- 24. リモートとブランチについての混乱
- 25. SeleniumとWebDriversについての混乱
- 26. ハッシュマップについての混乱#resize
- 27. AverageTimer32についての混乱PerformanceCounter
- 28. MKOverlayViewについての混乱
- 29. セットアップの種類について混乱
- 30. Sklearnパイプライン&フィーチャーユニオンについての混乱
です。セットは配列ではありません。そこにスキャンはありません。これは基本的に値のないハッシュマップです。ハッシュマップの仕組みを読んでください。 –
要するに、値( "member1")を持っていれば、その場所を見つけることができます。だからそこに行って確認してください。したがって、O(1)。 –
ありがとうございます。わかった。 – kamesh