una tipo que para necesito introduccion instalar descripcion datos crear conectarme aplicaciones redis

tipo - que es redis nosql



Estructuras de datos complejas Redis (3)

Digamos que tengo un hash de un hash, por ejemplo

$data = { ''harry'' : { ''age'' : 25, ''weight'' : 75, }, ''sally'' : { ''age'' : 25, ''weight'' : 75, } }

  1. ¿Cuál sería la forma "habitual" de almacenar dicha estructura de datos (o no?)
  2. ¿Sería capaz de obtener un valor directamente (por ejemplo, obtener Harry: la edad?
  3. Una vez almacenado podría cambiar directamente el valor de una clave secundaria (por ejemplo, sally: peso = 100)

¿Cuál sería la forma "habitual" de almacenar dicha estructura de datos (o no?)

Por ejemplo, harry y sally se almacenarían cada uno en hashes separados donde los campos representarían sus propiedades, como la edad y el peso. Luego, set estructura mantendría a todos los miembros (harry, sally, ...) que has almacenado en redis.

¿Sería capaz de obtener un valor directamente (por ejemplo, obtener Harry: la edad?)

Sí, vea HGET o HMGET o HGETALL .

Una vez almacenado podría cambiar directamente el valor de una clave secundaria (por ejemplo, sally: peso = 100)

Sí, mira HSET .


Depende de lo que quieras hacer, pero si tu estructura de datos no está anidada más profundamente y necesitas acceso a cada campo, te recomendaría usar hashes: hashes

Aquí hay una buena visión general sobre los tipos de datos redis, cada uno con pro y contra: http://redis.io/topics/data-types


Tomemos datos complejos que tenemos que almacenar en redis, por ejemplo este:

$data = { "user:1" : { name : "sally", password : "123" logs : "25th october" "30th october" "12 sept", friends : "34" , "24", "10" } "user:2" :{ name : "" password : "4567" logs : friends: "" } }

El problema que enfrentamos es que los amigos y los registros son listas. Entonces, lo que podemos hacer para representar estos datos en redis es utilizar hashes y enumerar algo como esto:

Opción 1. Un mapa hash con claves como usuario: 1 y usuario: 2

hmset user:1 name "sally" password "12344" hmset user:2 name "pally" password "232342" create separate list of logs as logs:1 { here 1 is the user id } lpush logs:1 "" "" "" lpush logs:2 "" "" "" and similarly for friends.

Opción 2: un mapa hash con datos json descartados como codificación de cadena

hmset user:1 name "sally" password "12344" logs "String_dumped_data" friends "string of dumped data"

Opción 3: Esta es otra representación de # 1

something like user:1:friends -> as a list and user:2:friends -> as a list

Por favor corrígeme si estoy equivocado.