sql >> Databáze >  >> NoSQL >> Redis

vložit klíč do redis

Chcete-li udělat něco nejasně podobného "auto_increment", podíval bych se na funkci INCR:

http://redis.io/commands/incr

Zvýší hodnotu a vrátí vám novou hodnotu – a je atomický (jako většina/všechny příkazy Redis), takže se nemusíte starat o problémy s vlákny. Takže vaše kroky by byly něco jako:

  1. NASTAVTE klíč pro zvýšení.
  2. Pokud chcete přidat hodnotu, INCR klíč a NASTAVTE novou hodnotu pomocí vrácené hodnoty INCR.
  3. INCR v tomto okamžiku zvýšilo hodnotu klíče přírůstku, takže jakékoli opakované vkládání hodnoty bude používat "další" číslo.

Pokud chcete uložit seznam položek, které lze vyhledat podle indexu, pravděpodobně budete chtít udělat něco takového (při programování pseudokódu):

// 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)

V tomto příkladu předpokládám, že ve svém programu sledujete hodnoty vrácené INCR. Hodnota, kterou vrátí INCR, bude index, do kterého vložíte novou položku, a také index, pomocí kterého budete položku později vyhledávat. V mém příkladu kódu tedy nahraďte (hodnotu indexu) uloženou hodnotou, kterou jste získali zpět z INCR (jak to uděláte, samozřejmě závisí na tom, jaký programovací jazyk používáte).

Všimněte si, že to NEUMOŽŇUJE mazání položek uprostřed prostřednictvím DEL myList:(index value) , protože sledujete poslední index s index , takže i když je položka smazána, poslední index zůstane stále stejný - chová se to velmi podobně jako pole "automatické zvýšení" na většině serverů SQL.

K tomu opravdu nechcete používat sady; sady jsou ze své podstaty neuspořádané a ve skutečnosti nejsou vytvořeny tak, aby vyhledávaly věci podle "klíče" - položky v sadě ani ve skutečnosti klíč nemají. Sady jsou užitečnější pro operace s ostatními sadami, které s nimi můžete provádět, jako je SINTER nebo SDIFF.




  1. Jak bezpečné je ukládat relace s Redis?

  2. Jak odstranit dokument, na který odkazuje id v mongoDB z php?

  3. Jak můžete určit pořadí vlastností v objektu javascript pro index MongoDB v node.js?

  4. Provozní správa databáze