(2) Redisの共通APIの理解と利用

一般的なコマンド

  • keys *: すべてのキー O(n) をトラバースして出力し、その後に通常は本番環境では使用されない正規表現を使用して、ホット スタンバイ スレーブ ノードに使用できます。
  • dbsize: キーの総数 O(1) を計算します
  • exists key: キーが存在するかどうかを確認し、O(1)、存在する場合は 1 を返し、存在しない場合は 0 を返します
  • del key: 指定されたキー値 O(1) を削除します。一度に複数削除できます。削除に成功した場合は 1 を返し、削除に失敗した場合は 0 を返します。
  • expire key seconds: キーは数秒で期限切れになります。O(1)
  • ttl key: 鍵の残りの有効期限 O(1) を確認します
  • persist key: キーの有効期限 O(1) を削除します
  • type key: キーのタイプを返す、O(1)

2弦タイプ(紐)

構造: キーは文字列で、値は文字列、数値文字列、または json 文字列にすることができます. 基本的に、値はすべてバイナリであり、最大値は 512MB を超えることはできません. シナリオ: キャッシュ カウンター
分散ロック
API

  • get key: キー O(1) に対応する値を取得します
  • set key: キー値を設定、O(1)
  • del key: キー値を削除、O(1)
  • incr key: キーは 1 インクリメントされます。キーが存在しない場合は、インクリメント後に get(key)=1、O(1)
  • decr key: キーを 1 減らします。キーが存在しない場合、get(key)=-1 デクリメント後、O(1)
  • incrby key k: キーの自動インクリメント k、キーが存在しない場合、自動インクリメント後の get(key)=k、O(1)
  • decrby key k: キーは k だけデクリメントされ、キーが存在しない場合は get(key)=-k デクリメント後、O(1)
  • set key value: キーの有無に関わらず設定され、O(1)
  • setnx key value: キーは存在せず、設定のみ、O(1)
  • set key value xx: キーは、存在する場合にのみ設定されます。O(1)
  • mget key1 key2 key3...: バッチでキーを取得、アトミック操作、O(n)
  • mset key1 value1 key2 value2 key3 value3...: キー値をバッチで設定、O(n)
  • getset key newvalue: 新しい新しい値を設定し、古い値 O(1) を返します
  • append key value: 古い値に値を追加、O(1)
  • strlen key: 文字列の長さ O(1) を返します
  • incrbyfloat key 3.5: キーに対応する値を 3.5、O(1) に増やします
  • getrange key start end: 文字列 O(1) の指定された添字のすべての値を取得します
  • setrange key index value: 指定された添え字 O(1) の対応するすべての値を設定します

3 つのハッシュ タイプ (ハッシュ)

構造: キー値、値型はキー値 (フィールド値) の集まりで、「Mapmap」型と同様です。
利用シーン: 例えば、各ユーザーの個人ホームページへのアクセス数を記録する
API : すべて「h」で始まる

  • hget key field: ハッシュ キー O(1) に対応するフィールドの値を取得します。
  • hset key field value: ハッシュ キー O(1) に対応するフィールドの値を設定します。
  • hdel key field: ハッシュキー O(1) に対応するフィールドの値を削除します
  • hexists key field: ハッシュ キーにフィールド O(1) があるかどうかを判断します。
  • hlen key: ハッシュ キー フィールドの数を取得、O(1)
  • hgetall key: すべてのフィールドと値に対応するハッシュ キーを返す O(n)
  • hvals key: ハッシュ キー O(n) に対応するすべてのフィールドの値を返します
  • hkeys key: すべてのフィールドに対応するハッシュ キーを返す O(n)
  • hsetnx key field value: ハッシュキーに対応するフィールドの値を設定. フィールドが既に存在する場合, 設定は失敗, O(1)
  • hincrby key field intCounter: ハッシュキーに対応するフィールドの値を自動インクリメント intCounter, O(1) に設定します
  • hincrbyfloat key field floatCounter: ハッシュ キーに対応するフィールドの値を自動インクリメント intCounter (浮動小数点バージョン)、O(1) に設定します。

4 つのリスト型 (リスト)

構造: キー要素、要素はキュー、 、有序,可重复左右に挿入してポップアップ
使用シナリオ: メッセージ キューの記事リスト
API : すべて「l」と「r」で始まる

  • rpush key value1 value2 value3 ...:リストの右端から値を挿入、O(1~n)、挿入後の順番:…、value1、value2、value3
  • lpush key value1 value2 value3 ...:リストの左端から値を挿入、O(1~n)、挿入後の順番は:value3、value2、value1、…
  • linsert key before|after value newValue: リストで指定された値の前|後に newValue を挿入、O(n)
  • pop|rpop key: リストの左側 | 右側から項目をポップ、O(1)
  • lrem key count value: カウント値に従って、同じ値を持つすべてのアイテムをリストから削除します, O(n)
    • count > 0、左から右に等しい値を持つ最大 count 個のアイテムを削除します
    • count < 0、右から左に等しい値を持つ最大 -count 個のアイテムを削除します
    • count = 0、等しい値を持つすべてのアイテムを削除します
  • ltrim key start end: インデックス範囲に従ってリストをトリミングし、開始〜終了の長さのリストを保持します, O(n)
  • lrange key start end: end を含むすべての項目を指定するリストを取得、O(n)
  • lindex key index: リストの指定されたインデックスにあるアイテムを取得します。O(n)
  • llen key: リストの長さを取得、O(1)
  • lset key index newValue: インデックス値を指定するリストを newValue, O(n) に設定します
  • blpop key timeout: lpop ブロッキング バージョン、タイムアウトはブロッキング タイムアウトです。タイムアウト = 0 はブロッキングしないことを意味し、O(1)
  • brpop key timeout: rpop ブロッキング バージョン、timeout はブロッキング タイムアウト、timeout=0 はブロッキングしないことを意味、O(1)

開発スキル:
LRUSH + LPOP = Stack (スタック)
LPUSH + RPOP = Queue (キュー)
LPUSH + LTRIM = Capped Collection (限定コレクション)
LPUSH + BRPOP = Message Queue (メッセージ キュー)

5種類のコレクション(セット)

構造: キー要素、要素はコレクション、无序,不重复、コレクション間の操作をサポート
シナリオ: 宝くじシステム、マイクロブログのいいね、いいね、嫌いなど
API : すべて「s」で始まる

  • sadd key element: コレクションに要素を追加します。要素が既に存在する場合、追加は失敗します。O(1)
  • srem key element: コレクション キー O(1) の要素を削除します。
  • scard key: コレクションのサイズ O(1) を計算します
  • sismember key element: コレクションに要素 element があるかどうかを判断します、O(1)
  • srandmember key count: コレクションから count 個の要素をランダムに選択します。要素は削除されません。O(1)
  • spop key: コレクションから要素をランダムにポップします。要素は削除されます。O(1)
  • smembers key: コレクション内のすべての要素を取得、O(1)、注意して使用、データ量が多い場合はブロックしやすい

コレクション間の API :

  • sdiff key1 key2: 違い
  • sinter key1 key2: 交差点
  • sunion key1 key2: ユニオン
  • sdiff|sinter|sunion store key3: 差分|交差|結合の結果を key3 コレクションに保存します

コレクション間でシナリオを使用する: 共通の注目、共通の友人など。

6 順序集合型 (zset)

構造: キー値、値は一連のキー値 (コア要素)、 、core 用于排序繰り返し要素なし、規則正しい
使用シナリオ: リーダーボード
API : すべて「z」で始まる

  • zadd key core1 element1 core2 element2: 要素を追加、コアは繰り返し可能、要素は繰り返し不可 O(logN)
  • zrem key element: 要素を削除、O(1)
  • zscore key element: 要素のコア O(1) を返します
  • zincrby key increScore clement: 要素の割合を増減、O(1)
  • zcard key: 要素の総数 O(1) を返します
  • zrange key start end [WITHSCORES]: 指定されたインデックス範囲内の昇順の要素 [スコア] を返します。O(log(n) + m)、n は要素の数、m は取得する要素の数です。
  • zrangebyscore key minScore maxScore [WITHSCORES]: 指定した範囲スコアの昇順の要素 [スコア] を返します。O(log(n) + m)、n は要素数、m は取得する要素数です。
  • zcount key minScore maxScore: 指定した範囲スコア O(log(n) + m) の昇順で要素数を返します。n は要素数、m は取得する要素数です。
  • zremrangebyrank|zremrangebyscore key start end: 指定したランク内の昇順の要素を削除 | 範囲スコア、O(log(n) + m)、n は要素数、m は取得する要素数
  • zrevrank: 上位から下位への逆順
  • zrevrange: 範囲データを高い方から低い方へ取る
  • zrevrangebyscore: 指定されたスコアの高いものから低いものまで結果を取得します
  • zinterstore: 交差点

おすすめ

転載: blog.csdn.net/Instanceztt/article/details/128233226