「auto_increment」と漠然と似ていることを行うには、INCR 関数を調べます。
http://redis.io/commands/incr
値をインクリメントし、新しい値を返します。これは (ほとんど/すべての Redis コマンドと同様に) アトミックであるため、スレッドの問題について心配する必要はありません。したがって、手順は次のようになります。
- インクリメントキーを設定します。
- 値を追加する場合は、キーを INCR し、返された INCR の値を使用して新しい値を設定します。
- この時点で INCR はインクリメント キーの値を増やしているため、繰り返し値を挿入すると「次の」番号が使用されます。
インデックスで検索できるアイテムのリストを保存したい場合は、おそらく次のようなことをしたいと思うでしょう (疑似コードのプログラミングで):
// 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)
この例では、プログラムで INCR によって返される値を追跡していると想定しています。INCR が返す値は、新しいアイテムを挿入するインデックスと、後でアイテムを検索するインデックスになります。したがって、私のコード例では、(インデックス値) を INCR から返された格納された値に置き換えます (もちろん、これを行う方法は、使用しているプログラミング言語によって異なります)。
で最後のインデックスをDEL myList:(index value)
追跡しているため、これにより途中でアイテムを削除できることに注意してください。したがって、アイテムが削除されても、最後のインデックスは同じままです。ほとんどの SQL サーバーのフィールド。index
これにはセットを使用したくありません。セットは本質的に順不同であり、実際には「キー」で物事を調べるように作られているわけではありません。セット内のアイテムには実際にはキーさえありません。セットは、SINTER や SDIFF など、セットに対して実行できる他のセット操作に役立ちます。