Redis入門シリーズ(六):RedisのSorted Setタイプ

1597 ワード

コンセプト


秩序化された集合は、集合に基づいて、各要素に数値を関連付けます(重要度を表すか、数値に他の意味を与えることができます).これにより,この数値に基づいて集合内の要素を操作することができる.(要素の値は同じでもよい).

共通コマンド


要素の追加

ZADD chengji 10 eric 5 david 15 lio

Davidの点数が間違っていることに気づきました.5点ではなく、15点です.どうやって変更しますか?
ZADD chengji 15 david

コレクション内の要素を削除するには、次の手順に従います。

ZREM chengji eric

要素スコアの取得

ZSCORE chengji eric //10

上位を取得


私は今点数によって、前の2名の点数の高い人を獲得したいです:ZREVRANGEはしかし私は今点数によって、後の2名の点数の高い人を獲得したいです:ZRANGEはできます
ZREVRANGE chengji 0 1
ZRANGE chengji 0 1

ZRANGEは、リストタイプのLRANGEに類比することができる
ZRANGEとZREVRANGEの違いは、ZRANGEがエレメントスコアの小さい順にZREVRANGEがエレメントスコアの大きい順に小さい順にZREVRANGEがソートされることです.

指定されたスコア範囲内の人を取得


上位は上位を獲得した人です.指定点数の範囲内の人を取得したいのですが、どうすればいいですか?例えば私が1-11(11を含まない)を取得したい人は
ZRANGEBYSCORE chengji 1 (11

私は点数1-15内の人(15を含む)を取得したいです.
ZRANGEBYSCORE chengji 1 15

もちろん、範囲は無限大(+inf正無限-inf負無限)です.私は1点以上を獲得します.
ZRANGEBYSCORE chengji 1 +inf

加点・減点操作

  • ericに6点
  • を加える
    ZINCRBY chengji 6 eric //16
  • ericに6点
  • を減らす
    ZINCRBY chengji -6 eric //10

    規則化された集合内の要素の数を取得

    ZCARD chengji //3

    シーケンスセットの適用シーン


    秩序化された集合により,文章アクセス量に応じて文章を並べ替えることが容易に実現できる.文章のアクセス量はscoreとして使用されます.ZRANGEかZREVRANGEを使えば大丈夫です.とても便利です.
    もっと素晴らしいのは、公衆番号の「チャットコード」に注目して、「左手コード右手詩」のことを一緒に話しましょう.