sql >> Base de Datos >  >> NoSQL >> Redis

obtener clave insertada en redis

Para hacer algo vagamente similar a "auto_incremento", miraría la función INCR:

http://redis.io/commands/incr

Incrementará un valor, devolviéndole el nuevo valor, y es atómico (como la mayoría/todos los comandos de Redis), por lo que no necesita preocuparse por los problemas de subprocesamiento. Así que tus pasos serían algo como:

  1. CONFIGURAR una clave de incremento.
  2. Cuando desee agregar un valor, INCR la clave y ESTABLEZCA su nuevo valor usando el valor INCR devuelto.
  3. INCR ha aumentado en este punto el valor de la clave de incremento, por lo que cualquier inserción de valores repetidos utilizará el número "siguiente".

Si desea almacenar una lista de elementos que se pueden buscar por índice, probablemente desee hacer algo como esto (en pseudocódigo de programación):

// When you initialize your database for the first time.
SET index "0"

// When you want to insert a new item:
INCR index
SET myList:(index value) "My Value"

// When you want to retrieve an item, and you have the index for it:
GET myList:(index value)

En este ejemplo, asumo que en su programa está realizando un seguimiento de los valores devueltos por INCR. El valor que devuelve INCR será el índice en el que inserta el nuevo elemento, así como el índice con el que buscará su elemento más adelante. Entonces, en mi código de ejemplo, reemplaza (valor de índice) con el valor almacenado que obtuviste de INCR (cómo lo haces depende del lenguaje de programación que estés usando, por supuesto).

Tenga en cuenta que esto SÍ permite la eliminación de elementos en el medio, a través de DEL myList:(index value) , porque está rastreando el último índice con index , por lo que incluso si se elimina un elemento, el último índice seguirá siendo el mismo; esto se comporta de manera muy similar a los campos de "incremento automático" en la mayoría de los servidores SQL.

Realmente no quieres usar conjuntos para esto; los conjuntos están intrínsecamente desordenados, y en realidad no están hechos para buscar cosas por "clave":los elementos en un conjunto ni siquiera tienen una clave. Los conjuntos son más útiles para otras operaciones de conjuntos que puede realizar en ellos, como SINTER o SDIFF.