Module: Mongo::QueryCache
- Definido en:
- lib/mongo/query_cache.rb
Definido bajo Namespace
clase: Middleware
Resumen del método de clase colapsar
-
.cache ⇒ Objeto
Ejecute el bloque mientras utiliza la caché de query.
-
.clear ⇒ nil
Borre la caché de query.
-
.clear_namespace(namespace) ⇒ nil
privado
Limpia la sección de la caché de query que almacena cursores con resultados de este namespace.
-
.enabled=(valor) ⇒ Objeto
Establezca si la caché está habilitada.
-
.habilitado? ⇒ true, false
¿Está habilitada la caché de queries en el hilo actual?.
-
.get(**opts) ⇒Mongo::CachingCursor | nil
privado
Para las opciones de query dadas, recuperar un cursor en caché que pueda utilizarse para obtener los resultados de query correctos, si existe en la caché.
- .normalized_limit(limit) ⇒ Objeto
-
.set(cursor, **opts) ⇒ true
privado
Almacena una instancia de CachingCursor en la caché de query asociada a las opciones de query especificadas.
-
.no almacenado en caché ⇒ Objeto
Ejecute el bloque con la caché de consultas deshabilitada.
Detalles del método de clase
.caché ⇒ Objeto
Ejecute el bloque mientras utiliza la caché de query.
46 47 48 49 50 51 52 53 54 |
# Archivo 'lib/mongo/query_cache.rb', línea 46 def cache habilitado = ¿habilitado? sí mismo.habilitado = true begin rendimiento asegurar sí mismo.habilitado = habilitado end end |
.clear ⇒ nil
Borre la caché de query.
88 89 90 |
# Archivo 'lib/mongo/query_cache.rb', línea 88 def borrar Hilo.Actual['[mongo]:query_cache'] = nulo end |
.clear_namespace(namespace) ⇒ nil
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Limpia la sección de la caché de query que almacena cursores con resultados de este namespace.
101 102 103 104 105 106 107 108 |
# Archivo 'lib/mongo/query_cache.rb', línea 101 def clear_namespace(namespace) tabla_de_cache.borrar(namespace) # La clave nil es donde se almacenan los cursor que podrían leer de # múltiples colecciones. Esta clave debe ser eliminada en cada operación de guardar # para evitar devolver datos obsoletos. tabla_de_cache.borrar(nulo) nulo end |
.enabled=(valor) ⇒ Objeto
Establezca si la caché está habilitada.
26 27 28 |
# Archivo 'lib/mongo/query_cache.rb', línea 26 def habilitado=(Valor) Hilo.Actual['[mongo]:query_cache:enabled'] = Valor end |
.¿activado? ⇒ verdadero, falso
¿Está la caché de query habilitada en el hilo actual?
36 37 38 |
# Archivo 'lib/mongo/query_cache.rb', línea 36 def ¿habilitado? !!Hilo.Actual['[mongo]:query_cache:enabled'] end |
.obtener(**opciones) ⇒ Mongo::CachingCursor | nil
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Para las opciones de query dadas, recuperar un cursor en caché que pueda utilizarse para obtener los resultados de query correctos, si existe en la caché.
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 |
# Archivo 'lib/mongo/query_cache.rb', línea 179 def Obtener(**opciones) limit = límite normalizado(opciones[:limit]) namespace = namespace_key(**opciones) caché = cache_key(**opciones) namespace_hash = tabla_de_cache[namespace] return nulo a menos que namespace_hash caching_cursor = namespace_hash[caché] return nulo a menos que caching_cursor caching_cursor_limit = límite normalizado(caching_cursor.vista.limit) # Hay dos escenarios en los que un cursor caché podría cumplir con la # query: # 1. La query tiene un límite y el cursor almacenado no tiene límite o # un límite mayor. # 2. La query no tiene límite y el cursor almacenado no tiene límite. # # De lo contrario, devuelva nil porque el cursor almacenado no lo satisfará # the query. si limit && (caching_cursor_limit.nil? || caching_cursor_limit >= limit) caching_cursor elsif limit.nil? && caching_cursor_limit.nil? caching_cursor end end |
.normalized_limit(limit) ⇒ objeto
209 210 211 212 213 214 215 216 |
# Archivo 'lib/mongo/query_cache.rb', línea 209 def límite normalizado(limit) return nulo a menos que limit # Para los fines de almacenamiento en caché, un límite de 0 significa que no hay límite, ya que mongo lo trata como tal. return nulo si limit == 0 # Para fines de almacenamiento en caché, un límite negativo es lo mismo que un límite positivo. limit.abs end |
.set(cursor, **opts) ⇒ true
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Almacena una instancia de CachingCursor en la caché de query asociada a las opciones de query especificadas.
140 141 142 143 144 145 146 147 148 |
# Archivo 'lib/mongo/query_cache.rb', línea 140 def Configura(cursor, **opciones) caché = cache_key(**opciones) namespace = namespace_key(**opciones) tabla_de_cache[namespace] ||= {} tabla_de_cache[namespace][caché] = cursor true end |
.sin caché ⇒ Objeto
Ejecute el bloque con la caché de consultas deshabilitada.
62 63 64 65 66 67 68 69 70 |
# Archivo 'lib/mongo/query_cache.rb', línea 62 def no almacenado en la caché habilitado = ¿habilitado? sí mismo.habilitado = false begin rendimiento asegurar sí mismo.habilitado = habilitado end end |