Redisの5種類のデータ型使用概要

2992 ワード

redisはC言語で開発されたオープンソースの高性能キー値対(key-value)データベース(nosql)であり、キャッシュに適用される.複数のキー値データ型を提供することで、異なるシーンでの記憶要件に適応する.
redisの適用シーン:
  • キャッシュ
  • 分散クラスタアーキテクチャにおけるセッション分離
  • タスクキュー(秒殺、買い取り、12306など)
  • アプリケーションランキング(SortedSet)
  • Webサイトアクセス統計
  • データ期限切れ処理(expire)

  • これまでredisでサポートするキー値データ型は5種類ある.次のようになります.
  • 文字列タイプ(String)
  • ハッシュタイプ(Hash)
  • リストタイプ(List)
  • 集合タイプ(Set)
  • 秩序化集合タイプ(SortedSet)

  • redisは単一スレッドである、比較的大きなデータを格納するのに適していない.redisのすべてのデータは文字列です.
    各データ型の使用および操作コマンド:
    1. String: key - value
  • 設定値
  • set key value
  • 取得値
  • get key
  • プラス
  • inc key
  • マイナス
  • decr key
    2. Hash: key - field - value
    JavaのMap>タイプに相当
  • 設定値
  • hset key field value
  • 取得値
  • hget key field
  • プラスnum
  • hincrby key field num
    3. List
    リストは順序的に繰り返すことができる、データ構造は二重チェーンテーブルキューであり、左右の2方向から要素を追加することができる.
  • 左から要素
  • を追加
    lpush list a b c d
  • 右から要素
  • を追加
    rpush list 1 2 3 4
  • 区間のデータを表示する(0から-1まではすべてを表示する)
  • lrange list 0 -1
  • 左からデータを取り出す(スタック削除)
  • lpop list
  • 右側からデータを取り出す(スタック削除)
  • rpop list
    redis 127.0.0.1:6379> lpush list a b c d
    (integer) 4
    redis 127.0.0.1:6379> lrange list 0 -1
    1) "d"
    2) "c"
    3) "b"
    4) "a"
    redis 127.0.0.1:6379> rpush list 1 2 3 4
    (integer) 8
    redis 127.0.0.1:6379> lrange list 0 -1
    1) "d"
    2) "c"
    3) "b"
    4) "a"
    5) "1"
    6) "2"
    7) "3"
    8) "4"
    redis 127.0.0.1:6379> lpop list
    "d"
    redis 127.0.0.1:6379> lrange list 0 -1
    1) "c"
    2) "b"
    3) "a"
    4) "1"
    5) "2"
    6) "3"
    7) "4"
    redis 127.0.0.1:6379>

    4. Set
    Setは無秩序で、繰り返してはいけない.
  • 追加要素
  • sadd set a b c d d
  • クエリー要素
  • smembers set
  • 削除要素
  • srem set a
    5. SortedSet(zset)
    zsetは順番があって、繰り返してはいけません
    ランキングに適しており、ソートにはスコア属性が必要です.
  • 追加要素
  • zadd zset score member(
    score memberは複数あります)
  • 要素を表示します.小さいから大きいまで(スコアを表示するにはwithscoresを追加する必要があります)
  • zrange zset start end [withscores]
  • 要素を表示します.大きいから小さいまで(スコアを表示するにはwithscoresを追加する必要があります)
  • zrevrange zset start end [withscores]
  • member要素にscore
  • を追加
    zincrby zset score member
    その他のコマンド
    keyの有効期限の設定(単位:秒)
    expire key second
    残り時間の表示(-2:存在しません、-1:永続化され、正数は残りの時間を表します)
    ttl key
    有効期限のクリア(永続化、成功は1、失敗は0)
    persist key
    キーの削除
    del key
    存在するか否かを判断する(存在は戻り1、存在しないは戻り0)
    exists key
    データベースを選択します.デフォルトは0番です.
    select 0
    redis持続化スキーム
    redisのデータはすべてメモリの中に置いて、もし機械が切るならば、メモリのデータは失うことができて、そのため持続化をしなければならなくて、メモリの中のデータをディスクに保存して、次回起動する時データをメモリの中に回復することができます.
    redis永続化には2つの方法がある(デフォルトではRDBがオン)
    1.RDBスナップショット形式で現在時刻のデータを定期的にディスクに保存するとdumpが発生する.rdbファイル
    特徴:データの損失が存在して、性能はわりに良くて、データのバックアップ
    2.AOF(append only file)redisに対するすべての操作コマンドをaofファイルに記録し、データを復元するには再実行するだけでよい
    特徴:毎秒保存して、データは比較的に完備して、性能を消耗します
    2つの永続化スキームを同時に開始すると、AOFの永続化シナリオに従ってデータが復元されます.