redis入門シリーズ(二)
コマンド
説明
SET key value
指定されたkeyの値を設定します。
GETキー
指定されたkeyの値を取得します。
GETSET key value
与えられたkeyの値をvalueに設定し、keyの古い値(old value)を返します。
SETEX key seconds value
指定されたkeyの値を取得します。
SETNX key value
keyが存在しない時のみkeyの値を設定します。
INCR key
keyに格納されている数字を一つ増やします。
DECR key
keyに格納されている数字を一つ減らします。
Stringデータ構造は簡単なkey-valueタイプです。valueはStringだけでなく、数字でもいいです。従来のkey-valueキャッシュアプリケーション。通常カウント:ミニブログ数、ファン数など。List常用命令
コマンド
説明
LLEN key
リストの長さを取得
LPOP key
リストの最初の要素を移動して取得します。
LPUSH key value 1[value 2]
リストの先頭に1つ以上の値を挿入します。
LRANGE key start stop
リストの指定範囲内の要素を取得します。
RPOP key
リストの最後の要素を削除して、削除された要素の値を返します。
RPUSH key value 1[value 2]
リストに1つ以上の値を追加します。
リストはリストであり、Redis listの応用シーンは非常に多く、Redisの最も重要なデータ構造の一つでもあります。例えば、微博の注目リスト、ファンリスト、メッセージリストなどの機能はすべてRedisのリスト構造で実現できます。Redis listの実現は、逆方向検索とエルゴードをサポートすることができ、より便利に動作することができますが、一部の追加的なメモリオーバーヘッドをもたらします。また、lrangeコマンドにより、ある元素からいくつの要素を読み取り、listに基づいて改ページ照会ができます。この素晴らしい機能は、redisに基づいて簡単な高性能改ページができます。ミニブログのように、ページを引き続けるもの(ページを1ページずつ下に進める)ができます。性能は高いです。Set常用コマンド
コマンド
説明
SADD key member 1[member 2]
1つ以上のメンバーをセットに追加します。
SPOP key
セットのランダム要素を削除して返します。
SCARD key
セットのメンバー数を取得します。
SISMEMBER key member
メンバー要素が集合keyのメンバーかどうかを判断します。
SMEMBERS key
グループの全メンバーを返します。
SUNION key 1[key 2]
与えられたセットの集合を返します。
SREM key member 1[member 2]
セットの中の1つまたは複数のメンバーを削除します。
setが外部に提供する機能はlistと同様にリストの機能であり、特にsetは自動的に重量を並べることができる。リストデータを保存する必要がある場合、重複データが発生したくない場合、setは良い選択であり、setはあるメンバーがsetセット内にいるかどうかを判断する重要なインターフェースを提供しています。これもlistに提供できないものです。セットに基づいて、交差、集合、差分セットの動作を容易に実現することができる。例えば、マイクロブログアプリケーションでは、1つのユーザのすべての関心者を1つのセットに存在させ、そのすべてのファンを1つのセットに存在させることができる。Redisは、共同の関心、共同のファン、共同の好みなどの機能を実現するために非常に便利です。このプロセスはつまり、クロスを求めるプロセスであり、具体的なコマンド:sintertore key 1 key 2 key 3
コマンド
説明
ZARD key score 1 member 1[score 2 member 2]
順序セットに1つ以上のメンバーを追加するか、既存のメンバーのスコアを更新するか?
ZCARDキー
順序セットのメンバー数を取得する
ZRANGE key start stop[WITHSCORES]
インデックス区間を通して、順序セット指定区間のメンバーを返します。
ZESCORE key member
順序集中を返し、メンバーの数値を返します。
ZREM key member[member...]
順序セットの1つまたは複数のメンバを削除します。
setと比較して,sorted setは,セット内の要素がscoreによって秩序化された配列を可能にする重みパラメータscoreを増加させた。例えば、生放送システムにおいて、リアルタイムのランキング情報は、生放送間のオンラインユーザリスト、各種プレゼントランキング、弾幕メッセージ(メッセージ次元で理解できるメッセージランキング)などの情報を含み、Redis中のSortedit構造を使用して記憶するのに適している。Hash常用命令
コマンド
説明
HDEL key field 1[field 2]
一つ以上のハッシュテーブルフィールドを削除します。
HEXISTS key field
ハッシュテーブルkeyで指定されたフィールドが存在するかどうかを確認します。
HGET key field
ハッシュテーブルに格納されているフィールドの値を取得します。
HGETALL key
ハッシュテーブルで指定されたkeyのすべてのフィールドおよび値を取得する。
HKEYS key
すべてのハッシュテーブルのフィールドを取得します。
HLEN key
ハッシュテーブルのフィールドの数を取得します。
HSET key field value
ハッシュテーブルkeyのフィールドfieldの値をvalueとする。
Hashはstringタイプのfieldとvalueのマッピングテーブルで、hashは特にオブジェクトを記憶するのに適しています。その後の操作の時、このオブジェクトの中のあるフィールドの値だけを直接修正することができます。例えば、ユーザー情報、商品情報などを格納するためにHashデータ構造ができます。
説明
PFADD key element[element...]
指定要素をHyperLogに追加します。
PFCONT key[key…]
与えられたHyperLogの基数推定値を返します。
Redisは2.8.9バージョンでHyperLog構造を追加しました。Redis HyperLogLogは基数統計を行うためのアルゴリズムであり、HyperLogLogの利点は、入力要素の数や体積が非常に大きい場合、基数を計算するために必要な空間は常に固定されており、しかも小さいことである。Redisでは、HyperLogLogキーごとに12 KBメモリを使うだけで、2^64個近くの異なる要素の基数を計算できます。これは基数を計算する時、要素が多ければ多いほどメモリを消費する集合と対照的である。しかし、HyperLog Logは入力要素によって基数だけ計算されますので、入力要素自体は保存されません。HyperLogLogはセットのように入力された各要素に戻ることはできません。geo常用命令
コマンド
例
説明
geoadd
geoadd cityGeo 22.505285 114.904989「深セン」
経緯度情報を追加
geopos
geopos cityGeo深セン
指定されたkeyの経緯度情報を検索します。
GEO機能は、Redis 3.2バージョンで提供され、地理的位置情報の格納をサポートして、近くの位置、パン等の地理的位置情報に依存する機能を実現する。bitmaps常用コマンド
コマンド
例
SETB IT key offset value
set bit bitmaps_test 10 1
GETB IT key offset
get bit bitmaps_test 10
厳密にはBitmapsは新しいデータ構造ではなく、特別な約束を満たす文字列である。set、getなど一連の文字列操作の拡張であり、それとは違って、ビットレベルの操作を提供しています。この角度から見ても、ビット配列、ビットベクトル構造として考えられます。Redisは2.2.0バージョンからset bit、get bit、bitcountなどいくつかのbitmap関連コマンドを追加しました。私達はbit mapsの操作を詳しく見てみます。test 1
1 (1 ASCII 49,49 110001)
00110001
getbit bitmaps_test 2 ( 1)
get bitmaps_test 3 ( 1)
get bitmaps_test 5 ( 0)
get bitmaps_test 7 ( 1)
setbit bitmaps_test 6 1
get bitmaps_test ( 3, 7 1, 00110011, 10 51, ascii 3)
まず、bitmapはStringであり、Stringの最大長さは512 mであるので、2^32=4294967296の異なるビットを表すことができる。基本的に桁数が足りないことは心配しなくてもいいです。一番よくあるいい評価機能を持って、いい評価の順番を記録する必要がない場合はbitmapを使って優雅に実現できます。私たちは別のビットを使ってユーザIDに対応しています。IDが10000のユーザーに賞賛されたら、ドアにoffsetを10000のビットに設定して、現在のリクエストユーザをマークすることができます。合計ポイント数を集計する必要がある場合は、bitcountを使って、すべての1の数を集計するだけで達成できます。