query pattern keys array all redis key-value-store colon

pattern - redis search key



¿Cuál es el propósito de los dos puntos dentro de las claves de Redis? (2)

Los dos puntos han estado en versiones anteriores de redis como concepto para almacenar datos de espacio de nombres. En las primeras versiones, redis solo admitía cadenas, si quería almacenar el correo electrónico y la antigüedad de ''bob'', tenía que almacenarlo todo como una cadena, por lo que se usaban dos puntos:

SET user:bob:email [email protected] SET user:bob:age 31

No tenían características especiales de manejo o rendimiento en redis, el único propósito era ponerles nombre a los datos para encontrarlos nuevamente. Hoy en día puedes usar hashes para almacenar la mayoría de las teclas colonizadas:

HSET user:bob email [email protected] HSET user:bob age 31

No tiene que nombrar el hash "usuario: bob", podríamos llamarlo "bob", pero el espacio de nombres con el prefijo del usuario nos permite saber de inmediato qué información debe / podría tener este hash.

Estoy aprendiendo cómo usar Redis para un proyecto mío. Una cosa que no entiendo es en qué exactamente se usan los dos puntos en los nombres de las teclas.

He visto nombres de claves como estos:

users:bob color:blue item:bag

¿Los dos puntos separan las claves en categorías y hacen que encontrar las claves sea más rápido? Si es así, ¿puedes usar varios puntos al nombrar claves para dividirlas en subcategorías? Por último, ¿tienen algo que ver con la definición de diferentes bases de datos dentro del servidor Redis?

He leído la documentación y he realizado numerosas búsquedas de Google sobre el tema, pero extrañamente no encuentro nada sobre esto.


Los dos puntos son una forma de estructurar las teclas. No son interpretados por redis de ninguna manera. También puede usar cualquier otro delimitador que quiera o ninguno. Personalmente prefiero / , lo que hace que mis claves se vean como rutas de sistema de archivos. No tienen influencia en el rendimiento, pero no debe hacerlos excesivamente largos ya que Redis tiene que mantener todas las claves en la memoria.

Una buena estructura de clave es importante para aprovechar el poder del comando sort, que es la respuesta de redis a la unión de SQL.

GET user:bob:color -> ''blue'' GET user:alice:color -> ''red'' SMEMBERS user:peter:friends -> alice, bob SORT user:peter:friends BY NOSORT GET user:*:color -> ''blue'', ''red''

Puede ver que la estructura de clave permite a SORT buscar los colores del usuario haciendo referencia a las claves estructuradas.