Module: Mongo::QueryCache
- 定義:
- lib/mongo/query_cache.rb
名前空間で定義済み
クラス: ミドルウェア
クラスメソッドの概要を折りたたむ
-
。キャッシュ= オブジェクト
クエリ キャッシュを使用しながらブロックを実行します。
-
。クリア= nil
クエリ キャッシュをクリアします。
-
。 clear_namespace (名前空間) = nil
private
この名前空間からの結果を持つカーソルを保存しているクエリ キャッシュの セクションをクリアします。
-
。 enabled= (値) = オブジェクト
キャッシュを有効にするかどうかを設定します。
-
。有効か= true、false
クエリ キャッシュは現在のスレッドで有効になっていますか。
-
。 get (**opts)= Mongo::CagingCursor | nil
private
指定されたクエリ オプションに対して、正しいクエリ結果を取得するために使用できるキャッシュされたカーソルを検索します(キャッシュに存在する場合)。
- 。 Normalized_limit (制限) = オブジェクト
-
。 set (カーソル、++ops)=true
private
指定されたクエリ オプションに関連付けられたクエリ キャッシュに CacheCursor インスタンスを保存します。
-
。非キャッシュ 詳しくは、オブジェクト
クエリ キャッシュを無効にしてブロックを実行します。
クラスメソッドの詳細
。キャッシュ=オブジェクト
クエリ キャッシュを使用しながらブロックを実行します。
46 47 48 49 50 51 52 53 54 |
# ファイル 'lib/mongo/query_cache.rb' 行 46 デフォルト cache enabled = 有効か 自己.enabled = true begin ノードの数 保証する 自己.enabled = enabled end end |
。クリア= nil
クエリ キャッシュをクリアします。
88 89 90 |
# ファイル 'lib/mongo/query_cache.rb' 行 88 デフォルト クリア スレッド.Current['[mongo]:query_cache'] = nil end |
。 clear_namespace (名前空間) = nil
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
この名前空間からの結果を持つカーソルを保存しているクエリ キャッシュの セクションをクリアします。
101 102 103 104 105 106 107 108 |
# ファイル 'lib/mongo/query_cache.rb' 行 101 デフォルト clear_namespace(namespace) cache_table.削除(namespace) # nil キーは、から読み取れた可能性のあるカーソルが保存されている場所です 複数のコレクション このキーは、書き込み操作ごとにクリアする必要があります。 古いデータが返されないようにするには、 を使用します。 cache_table.削除(nil) nil end |
。 enabled= (値) =オブジェクト
キャッシュを有効にするかどうかを設定します。
26 27 28 |
# ファイル 'lib/mongo/query_cache.rb' 行 26 デフォルト enabled(価値) スレッド.Current['[mongo]:query_cache:enabled'] = 価値 end |
。有効か = true 、 false
現在のスレッドでクエリ キャッシュは有効になっていますか。
36 37 38 |
# ファイル 'lib/mongo/query_cache.rb' 行 36 デフォルト 有効か !!スレッド.Current['[mongo]:query_cache:enabled'] end |
。 get (**opts) = Mongo::CagingCursor | nil
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
指定されたクエリ オプションに対して、正しいクエリ結果を取得するために使用できるキャッシュされたカーソルを検索します(キャッシュに存在する場合)。
179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 |
# ファイル 'lib/mongo/query_cache.rb' 行 179 デフォルト 得る(**ops) limit = Normalized_limit(ops[:limit]) _namespace_key = namespace_key(**ops) _cache_key = cache_key(**ops) namespace_hash = cache_table[_namespace_key] return nil ただし、 namespace_hash caching_cursor = namespace_hash[_cache_key] return nil ただし、 caching_cursor caching_cursor_limit = Normalized_limit(caching_cursor.表示.limit) #キャッシュ カーソルが次の条件を満たす可能性があるシナリオが 2 つあります: # query: # 1 。 クエリには制限があり、保存されたカーソルには制限がない場合、 または # より大きな制限があります。 # 2 。 クエリには制限はなく、保存済みカーソルにも制限はありません。 # それ以外の場合は、保存されたカーソルが を満たさないため nil を返します。 # クエリを実行します。 場合 limit & & (caching_cursor_limit.nil? || caching_cursor_limit >= limit) caching_cursor elsif limit.nil? & & caching_cursor_limit.nil? caching_cursor end end |
。 Normalized_limit (制限) =オブジェクト
209 210 211 212 213 214 215 216 |
# ファイル 'lib/mongo/query_cache.rb' 行 209 デフォルト Normalized_limit(limit) return nil ただし、 limit # キャッシュの目的では、 0の制限は制限なしを意味します。これは mongo がそのように扱うためです。 return nil 場合 limit == 0 # キャッシュの目的では、負の制限は正の制限と同じです。 limit.abs end |
。 set (カーソル、++ops)= true
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
指定されたクエリ オプションに関連付けられたクエリ キャッシュに CacheCursor インスタンスを保存します。
140 141 142 143 144 145 146 147 148 |
# ファイル 'lib/mongo/query_cache.rb' 行 140 デフォルト セット(cursor, **ops) _cache_key = cache_key(**ops) _namespace_key = namespace_key(**ops) cache_table[_namespace_key] ||= {} cache_table[_namespace_key][_cache_key] = cursor true end |
。非キャッシュ 詳しくは、オブジェクト
クエリ キャッシュを無効にしてブロックを実行します。
62 63 64 65 66 67 68 69 70 |
# ファイル 'lib/mongo/query_cache.rb' 行 62 デフォルト 非キャッシュ enabled = 有効か 自己.enabled = false begin ノードの数 保証する 自己.enabled = enabled end end |