Soy bastante nuevo en Redis y tengo la tarea de optimizar las operaciones de Redis para un tablero de una organización sin fines de lucro.
El escenario:
Tenemos la necesidad de cargar usuarios de una ciudad en particular, y en este momento está almacenado por ID de ciudad. Como puede imaginar, esto da como resultado un documento masivo que debe volver a almacenarse en caché con cada pequeño cambio en el usuario.
Quiero cambiar esta metodología para que los usuarios se almacenen en Redis en el siguiente formato: [cityID][userID] . Entonces, si necesito sacar a todos los usuarios de Londres, ¿puedo llamar a IDFORLONDON?
¿Sería esta la forma correcta de abordarlo? ¿Hay alguna forma de cargar solo 10 usuarios de IDFORLONDON? (para paginación). ¿O es mi opción cargar todo y luego cortar?
¡Gracias!
Te recomendaré que vayas con RedisJSON si puedes. RedisJSON es un módulo que puede agregar a Redis para ampliar sus capacidades; en este caso, agregar documentos JSON y una gran cantidad de comandos para leerlos, escribirlos y manipularlos.
Desde la línea de comandos de Redis se ve así:
127.0.0.1:6379> JSON.SET london . '{ "users": [ "alice", "bob", "frank" ]}' OK 127.0.0.1:6379> JSON.GET london .users "[\"alice\",\"bob\",\"frank\"]" 127.0.0.1:6379> JSON.ARRAPPEND london .users '"charlie"' (integer) 4 127.0.0.1:6379> JSON.GET london .users "[\"alice\",\"bob\",\"frank\",\"charlie\"]"