Aは、データ型をサポートするのRedis
1)文字列
- 共通のコマンド:設定/取得/ DECR / INCR / MGETなど。
- シナリオ:文字列は、共通鍵/値の記憶などに分類することができるデータの最も一般的に使用されるタイプです。
- 実装:文字列が内部ストレージにRedisのデフォルト文字列がredisObject、顔INCRを参照されている、DECRその他の動作は、INTのフィールドredisObjectケースをコードする、数値計算になります。
2)ハッシュ
- よく使用されるコマンド:hget / HSET / hgetallなど
- シナリオ:私たちは、ユーザーID、ユーザー名、年齢、生年月日を含め、ユーザオブジェクトデータに関するストア情報にしたい、私たちは、ユーザーの名前や年齢、生年月日のユーザーIDを介して取得したいです。
- 実装:ハッシュ値のRedisのは、実際にはHashMapとして内部的に格納し、Mapインタフェースのメンバーへの直接アクセスを提供しています。示されているように、キーはユーザーIDで、値が地図です。地図は値が属性値で、メンバーのキー属性です。そのようなデータは、すなわちキー(ユーザID)+フィールド(タグ属性)の操作に対応するデータを属性することができ、マップキー(フィールドの前記内部にRedisの地図キー)内に直接アクセスして修正することができます。2つの方法でのHashMapの現在の実装:redisObjectにするための対応する値を符号化するとき、メモリを節約する部材HashMapの比較的少ない時間のRedisは、実際のHashMapの構造を用いることなく、コンパクトに収納の一次元アレイと同様のアプローチを採用しますzipmap、メンバーの数を増やしたときに、それは自動的に、本当のHashMapにエンコーディングHTのためのこの時間は変換されます。
3)一覧
- 共通コマンド:lpush / rpush / LPOP / RPOP / LRANGE等。
- アプリケーションシナリオ:シナリオのRedisのリストは、リストを達成するためにRedisの構造を使用することができますので、Redisのは、あなたのウォッチリスト、Twitterのファンリストとして、また、最も重要なデータ構造の一つであり、非常に大きいです。
- 実装:Redisのリストにも使用されている送信バッファのキューなどを含む逆引き参照とトラバーサルをサポートすることができ、二重リンクリスト、より便利な操作が、オーバーヘッドのいくつかの余分なメモリを持って、内部実装のRedisの多くは、として実装されていますこのデータ構造。
4)設定
- 共通コマンド:SADD / SPOP / smembers / sunion等。
- シナリオ:外部関数の機能一覧Redisのセットを使用すると、データのリストを格納する必要がある場合、自動的に重複排除に設定することができ、特別な機能のリストを提供したものと同様で、重複データセットにしたくないです非常に良い選択とセットは、重要なインタフェースは、設定されたコレクション内のメンバーは、このリストが提供されていないかどうかを判断する提供します。
- 実装:実装の内部設定は、常にヌルのHashMapに値であり、実際にメンバーがコレクション内の理由かどうかを判断するように設定されてすぐに重複排除、に計算されたハッシュ方法です。
5)ソートセット
- 共通コマンド:zadd /のzrange / zrem / zcard等。
- シナリオ:Redisのは、セットに似た使用シナリオのセット、差が自己規則セットではなく、メンバーをソートするためにユーザに追加のパラメータの優先順位(スコア)を設定ソートされ、順番に挿入さを提供することができるソート自動的にソート。あなたは非反復とコレクションの順序付きリストが必要な場合、あなたは、このようなTwitterの公開タイムラインなどのデータ構造のソートセットがスコアとしてポスト時間まで保存することができます選択することができ、時間が自動的にかかる取得がソートされます。
- 実装:Redisのは、秩序や店舗のデータを確実にするための内部利用のHashMapとジャンプテーブル(SkipList)の設定ソートHashMapを入れて得点するためのマップのメンバーであり、かつジャンプテーブルは、すべてのメンバーに格納され、ソートされジャンプテーブル構造を使用して、スコアに格納されたハッシュマップは、比較的高い検索効率を得られ、実装が比較的簡単なことができます。
二、RedisのはDaquanのコマンド
1.メモリベースのキー- 値データベース 2は、C言語に基づいて、複数の言語のAPIをサポートすることができます// 81000回取得取るために、SET毎秒1100万回 3を持続。サポートするデータ 4 .Valueのは、文字列を指定できますハッシュ、リスト、セット、ソートセット 使用シナリオ 1 。最新の動作にn個のデータ 2.チャート、n個のデータ取らトップ// 人気10の前に最高 3 。正確な設定の有効期限 4 カウンタ 5 。リアルタイムシステム、アンチスパムシステム 6 。パブ、サブビルドリアルタイムでパブリッシュ・サブスクライブ・システムメッセージング 7 。メッセージキュー構築する 8 。キャッシュ CMDアクセスのRedis Redisの -cli.exe -h 127.0.0.1 -p 6379の キー キー * すべてのキーを取得 するSELECT 0を選択します最初のライブラリ の移動のmyString 1データベースは、ライブラリが目標を持って、あなたが移動することはできません、現在のデータベースに移動するための鍵となる 指定されたライブラリクリアフラッシュデシベルを randomkeyランダム鍵 型キータイプの 設定キーセットキー1値1 キー取得するGETキー1を MSET KEY1をvalue1キー2値2値3 KEY3 mgetはKEY1 KEY2 KEY3 デルをキー1キーを削除 存在するキーキーがあるかどうかを決定する ザ・キー期限切れに 10 10の有効期限が切れて キーpexpire千ミリ秒は 、キーの削除期限切れの時間持続する 文字列 セット名CXX GET名 GetRange名 0 -1 文字列セグメント new_cxxの設定が古い値を返す、名前をGETSET MSET KEY1 KEY2バッチセット MGET key1がKEY2 GETバルク setnxキーの値は、挿入(未EXISTS)は存在しません SETEXキー時間有効期限値(有効期限切れ) 開始値置換インデックスからSetRangeキーのインデックス値 年齢刻みINCR 年齢incrby hmget myhash名の年齢注 10の 刻み の年齢の減少DECR 年齢decrby 10の デクリメント 減少フロートincrbyfloatは 、追加の追加を strlenの長さ GETBIT / SetBit / BITCOUNT / オペレーティングbitopビット のハッシュ HSET myhash名CXXが myhash名hget hmsetのmyhash CXX名年齢 25注"I AM注意"を があればhexistsは名前をmyhashを hgetall myhashすべて取得 hsetnxのmyhashスコア 100 に配置された不在 hincrbyのmyhashのID 1。が インクリメントされ HDELのmyhash名は削除 キーだけ取るmyhash hkeys 値だけ取るmyhash hvalsを HLENのmyhash長 一覧 ABCは左LPUSHのマイリストを挿入 rpushマイリストxyzの右介在 LRANGEマイリスト 0 - 1つの データ収集 LPOPマイリストポップアップ要素 RPOPマイリストポップアップ要素 マイリスト長llen 削除カウント値マイリストのlrem LINDEXのマイリスト 2 指定されたインデックス値 LSETのマイリスト 2nはセッターインデックス LTRIMマイリストを 04 の削除キー 挿入前linsertのmylistというのA linsertをマイリストに挿入した後 rpoplpushデータ転送LIST2のリスト一覧 SET ・サッドはRedisのMYSET smembers MYSETデータセットを SREM MYSET SET1削除 コレクションの要素かどうかsismember MYSET SET1を判断し SCARD番号key_nameは sdiffの |シンター| SUNION操作:間の集合演算:差が設定|交差点が| とセット コレクション内のランダムな要素を取得しsrandmemberが コレクションからポップアップ表示要素SPOP ZSET Zadd ZSET。1 つ ZaddはZSET 2 TWO Zadd ZSET。3 三 zincrby ZSETを 1。成長スコア1 zscore ZSET 2つの取得ポイント ZレンジザはZSET 0 -1 withscores値の範囲 zrangebyscore ZSET 10 25 値のwithscores指定された範囲は、 ZSET zrangebyscore 10 1 2 25 withscoresが制限タブ ZrevrangebyscoreがZSET 10 25 値の範囲を指定withscoresを zcard ZSET要素数 ZCOUNT ZSETを得るの範囲内の要素の数は、分数を指定 Zremは1~2の削除一つ以上の要素をZSET ZremrangebyrankがZSET 0.1 位置範囲に応じて削除要素を ZremrangebyscoreがZSET 0.1 スコアの範囲に応じて削除要素を Zrank ZSET 0を-1 のスコアランキングは、最小要素0 Zrevrank ZSET0-1 ランキングスコアが最大の要素0 Zinterstore LAST_WEEK:zunionstoreランク 7ランク:20150323ランク:ランク20150324:20150325の重み1. 1. 1. 1. 1. 1. 1 ソート: ソートマイリスト並び 替えマイリストアルファDESC制限を 0 2 アルファベット順 で並べ替えリストIT: * コマンドによってDESC ITによってソートリスト: * descをGET IT:* GETパラメータ ITによってソートリスト: * DESCはそれを得る:* ストアSORC:まで結果セットのソートクエリを保存すること:結果のソートストアのパラメータはの指揮 のサブスクリプションそして公開: chat1を購読する:購読 発表:chat1を公開「hell0ニッケルハオ」 表示チャンネル:のpubsubチャンネルを 特定のチャンネルに加入者数を見て:のpubsub numsub chat1 指定したチャンネルを解除:. unsubscrible chat1を、Javaのpunsubscribe * チャンネル:. Psubscribeジャワのグループに登録 * :Redisの事 分離、アトミック、 ステップ:スタートトランザクションコマンドを実行し、トランザクションがコミットされる マルチ // オープン総務 ・サッドMYSET ABC ・サッドMYSET EFG マイリストAA BB CC LPUSH LPUSHマイリストDD FF GG サーバ管理 dump.rdb appendonly.aof // AOPのBgRewriteAof非同期実行は、(appendOnlyはファイル)、ファイルの書き換えは、 AOFの現在のファイルサイズの最適化バージョンを作成 // 保存することbgsave背景非同期データをディスクは、現在のディレクトリdump.rdbにファイルを作成します // ディスクに保存された同期データは、それがメインのプロセスをブロックします保存、他のクライアントが接続できない // クライアント近いキルクライアント接続 //すべてのクライアントのリストにクライアントリスト // クライアントには、名前の設定 setName myclient1クライアント クライアントのgetNameの 設定GETポート // 書き換えRedisのプロファイルにconfigRewrite RDB 保存 900 1 割引 300 10 セーブ 60万 AOPのバックアップ処理 appendonlyはいオープン永続 appendfsync everysecバックアップ1秒に1回 のコマンド: ディスクに保存bgsave非同期データ(セーブ・スナップショット) に成功したディスクのUNIXタイムスタンプに保存された最後のLASTSAVEリターン サーバーと近いRedisのサーバーに保存されたシャットダウン同期 ファイル圧縮処理(コマンド)bgrewriteaof