redis基本データ型の一般的な操作

4476 ワード

redisはnosql(not only sql)データベースであり、nosqlデータベースとリレーショナルデータベースの違いおよびアプリケーションシーンについてはここでは後述しない.
redisの小さな知識
  • 単一プロセスモデル:読み書きなどのイベントに対する応答はepoll関数のパッケージによって行われる.
  • デフォルト16データベーススライス、下付き0から、初期デフォルトは0番ライブラリを使用し、各ライブラリ間は互いに隔離され、move key db_を使用できます.indexはkeyの移動を完了します.
  • dbsize現在のライブラリのすべてのkey数を表示し、flushdbは現在のライブラリkeyを空にし、flushallはすべてのライブラリkeyを空にします.
  • パスワード管理を統合します.つまり、すべてのライブラリで同じパスワードが使用されます.
  • 関連keyの操作:keys *は現在のライブラリのすべてのkey値を表示し、expire key secondsはkeyの期限切れ時間を設定し、ttl keyはkeyがあと何秒で期限切れになるか(-1は期限切れ、-2は期限切れになる)、type keyはkeyのタイプを表示します.

  • Stringタイプ
  • redisのstringタイプはバイナリセキュリティであり、すなわち、ピクチャやシーケンス化されたオブジェクトなどの任意のデータを含んでもよい.1文字列のvalueは最大521 Mデータ
  • を収容できる.
  • 共通操作:
  • set設定値;get key対応値を取得する.del削除key;append key対応valueを追加します.strlen key対応value長を取得します.
  • incr keyは1で増加する.decr keyは1で減少します.incrby key numは指定された数値で増加する.decriby key numは、指定された数値で減算されます.
  • getrange key start end指定区間の値を取得する.setrange key start new_valueは、セットトップ区間の範囲の値を設定し、新しい値の長さの新しい値を最初から下付きで置き換えます.
  • setex key seconds value設定時にタイムアウト時間を指定します.setnx key value存在しない場合は値を設定、存在する場合は無効
  • である.
  • mset key1 val1 key2 val2 ...ロット設定値;mget key1 key2 ...ロット取得;msetnx key1 val1 key2 val2 ...存在しない場合、このコマンドは有効になりません.
    Listタイプ
  • ListタイプはjavaのListチェーンテーブルに似た単一値マルチvalueですが、双方向リストであり、両方を挿入でき、効率が非常に高いです.
  • 共通操作:
  • lpush key val1 val2 ...はlistを設置し、左側から挿入し、対応する右側にrpushが挿入され、この特性を利用してlistをスタックとして使用することができる.lrange key start endはlistを巡回し、インデックスは負の逆をサポートします.
  • lpop keyは、左から要素を除去して戻り、rpopに対応する.
  • lindex key indexインデックスの下のラベルに従って要素を取得します.llen keyリスト長
  • を取得
  • lrem key num value指定された数のvalue値の要素を削除します.ltrim key start endは、指定された範囲内の要素リスト(境界が含まれている)を切り取り、keyに値を付与する.
  • rpoplpush key1 key2ソースリストの要素をスタックし、ターゲットリストにスタックする.lset key index valueリスト指定位置の値を置換する.linsert key before/after value new_value指定リストの指定valueの前/後に新しい値を挿入します.

  • Setタイプ
  • 共通操作:
  • sadd key val1 val2 ... setに要素を挿入し、繰り返すと自動的に削除されます.smembers key setのすべての要素を取得します.sismember key value指定valueがset要素であるか否かを判断し、1が0であるか否かを判断する.
  • scard key set中の要素の個数を取得する.srem key value指定された要素を削除します.srandmember key num setで指定された個数の要素をランダムに取得する.spop keyランダムにスタックを出ます.smove key1 key2 key 1のいずれかの値がkey 2に移動します.
  • sdiff key1 key2 key 1のkey 2に対する差セットを求める(key 1のみでkey 2には含まれない).sinter key1 key2両者の交わりを求める(両者とも存在する).sunion key1 key2は両者の並列集合を求める.

  • Hashタイプ
  • 小記key-valueモードは変わらないが、valueはキー値ペアである.
  • 共通操作:
  • hset key field valはhashオブジェクト属性に値を付与する.hget key field hashオブジェクト指定属性の値を取得する.対応するバッチ動作はhmset key field1 val1 field2 val2 ...およびhmget key field field2 ...である.hgetall key hashオブジェクトのすべてのキー値ペアを取得する.hdel key field hashオブジェクト指定属性を削除する.hlen key hashオブジェクトの属性個数を取得する.
  • hexists key field指定属性名が存在するか否かを判断する.hkeys key hashオブジェクトのすべての属性名を取得する.hvals keyは、すべての属性に対応する値を取得する.hincrby key field num指定属性に対応する値をインクリメント操作し、hincrbyfloat key field num浮動小数点数をインクリメントする.hsetnx key field valueが存在しない場合に属性を追加します.

  • Zsetタイプ
  • 共通操作:
  • zadd key score1 element1 ...添加元素(帯分数);zrange key start endはすべてのzset要素を取得し、zrange key start end withscoresはzsetのすべての要素を取得し、対応するzrevrangeは大きいから小さいまで点数を示した.zrangebyscore key (start_score (end_score *limit start num*は指定された点数範囲の要素を取得し、括弧は含まないことを示し、limitは結果の中で指定された下付き記号から指定された個数の要素を切り取り、対応するzrevrangebyscoreは大きいから小さいまでである.
  • zrem key element指定要素を削除する.zcard key element要素の個数を取得する.zcount key start_score end_scoreは、指定されたスコア範囲内の要素の個数を統計する.zrank key elementは、点数が低い順から高い順に指定要素の順位を取得し(0から)、zrevrank key elementは点数が高い順から低い順に指定要素の順位を取得する(0から).zscore key elementは、指定された要素のスコア値を取得する.