ブリーフ
キータイプがサポートされていますRedisの:文字列の文字の種類、マップタイプのハッシュ、リスト、リストの種類、セットコレクション型は、インデックス付きのコレクションをたSortedSet。次の要約の使用でこれらのキータイプへと構文は簡単ですが、過度の数に、我々はまだたくさんの練習を必要とするものの、キーコマンドを紹介します。
二、文字列の文字型
1、割り当て
構文:SETキー値
127.0.0.1:6379> set test 123
OK
図2に示すように、値
構文:GETキー
127.0.0.1:6379> get test
"123“
3、および割り当ての値
構文:GETSETキー値
127.0.0.1:6379> getset s2 222
"111"
127.0.0.1:6379> get s2
"222"
図4に示すように、設定/複数のキーを取得します
構文:
- MSETキー値[キー値...]
- MGETキー[キー...]
127.0.0.1:6379> mset k1 v1 k2 v2 k3 v3
OK
127.0.0.1:6379> get k1
"v1"
127.0.0.1:6379> mget k1 k3
1) "v1"
2) "v3"
5、削除
構文:DELキー
127.0.0.1:6379> del test
(integer) 1
値6、増加または減少
。インクリメント番号
文字列が整数格納されている場合、Redisの実用的なコマンドINCRを提供し、その役割は、現在のキー値がインクリメントされていることを確認することであり、インクリメント後の値を返します。
構文:INCRキー
127.0.0.1:6379> incr num
(integer) 1
127.0.0.1:6379> incr num
(integer) 2
127.0.0.1:6379> incr num
(integer) 3
B。指定された整数を増やします
構文:INCRBYキーインクリメント
127.0.0.1:6379> incrby num 2
(integer) 5
127.0.0.1:6379> incrby num 2
(integer) 7
127.0.0.1:6379> incrby num 2
(integer) 9
C。数値を減少させます
構文:DECRキー
127.0.0.1:6379> decr num
(integer) 9
127.0.0.1:6379> decr num
(integer) 8
D。指定された整数を減らします
構文:DECRBYキーデクリメント
127.0.0.1:6379> decr num
(integer) 6
127.0.0.1:6379> decr num
(integer) 5
127.0.0.1:6379> decrby num 3
(integer) 2
127.0.0.1:6379> decrby num 3
(integer) -1
7、尾に付加価値
追加重要な役割は、価値を付加することです。キーは、キーの値を設定するのと同等の値である場合、キーの値が存在しません。添付した後、戻り値は、文字列の長さの合計です。
構文:APPENDキー値
127.0.0.1:6379> set str hello
OK
127.0.0.1:6379> append str " world!"
(integer) 12
127.0.0.1:6379> get str
"hello world!"
8、文字列の長さを取得します
存在しないキーがゼロに戻された場合STRLENコマンドは、キーの長さを返します。
構文:STRLENキー
127.0.0.1:6379> strlen str
(integer) 0
127.0.0.1:6379> set str hello
OK
127.0.0.1:6379> strlen str
(integer) 5
結果SETNXのコマンドが返す0と1は、一般的に分散ロックを達成するために使用されています[]
192.168.6.172:6379> setnx newname newData1
(integer) 0
192.168.6.172:6379> del newname
(integer) 1
192.168.6.172:6379> setnx newname newData1
(integer) 1
192.168.6.172:6379> setnx lock 1
(integer) 1
192.168.6.172:6379> del lock
(integer) 1
192.168.6.172:6379> setnx lock 1
(integer) 1
0が失敗するように設定すでに存在するキーのRedisのセットで返されます
Redisのキーに戻る1のプロキシ設定が存在しない場合、セットアップは成功しています
三、マップのハッシュタイプ
Redisのでは、また、ハッシュとして知られ、マップします。JSONに保存されていると仮定Userオブジェクトは、次のように保存され、Redisの、そこにユーザーオブジェクトID、ユーザ名、パスワード、年齢、名前や他の属性にフォームをシリアライズ:
保存、更新:ユーザオブジェクト - > JSON(文字列) - >のRedis。
注:デフォルトでは、オブジェクトのRedisの存在をサポートしていません。
唯一のビジネスにおける年齢プロパティを更新する場合は、他のプロパティは、私が何をすべきか更新されないのですか?それでも伝送方式のトップを使用している場合を扱うとき、資源の浪費は、ハッシュ以下と言うが、この問題に良い解決策になることができ。
Redisのハッシュはじめに
フィールドとフィールド値のマッピングを提供し、ハッシュ型と呼ばれるハッシュ、。フィールドの値は、文字列型することができ
、それは、ハッシュ型、コレクション型の他の種類をサポートしていません。次のとおりです。
1、割り当て
insertコマンドは0更新操作を返し、HSETを返すときHSETは、一時と更新操作を区別しないコマンドINSERT行います。
時間値のフィールドを設定します
構文:HSETキーフィールド値
127.0.0.1:6379> hset user username zhangesan
(integer) 1
フィールド値の複数
语法:HMSETキーフィールドの値が[フィールド値...]
127.0.0.1:6379> hmset user age 20 username lisi
OK
フィールドが存在割り当てない場合、同様のHSETは、フィールドが存在する場合、コマンドは任意の操作を実行しないことを除いて、
構文:HSETNXキーフィールド値
127.0.0.1:6379> hsetnx user age 30
(integer) 0
ユーザーがいない場合は、年齢フィールドには30のセット年齢値である、または何もしません。
図2に示すように、値
一つは、フィールドの値を取得します
構文:HGETキーフィールド
127.0.0.1:6379> hget user username
"zhangesan"
複数のフィールド値をフェッチ
構文:HMGETキー提出[フィールド...]
127.0.0.1:6379> hmget user age username
1) "20"
2) "lisi"
すべてのフィールド値を取得します。
構文:HGETALLキー
127.0.0.1:6379> hgetall user
1) "age"
2) "20"
3) "username"
4) "lisi"
3、フィールドを削除
1つまたは複数のフィールドを削除することができ、戻り値は削除されたフィールドの数です。
语法:HDELキーフィールド[フィールド...]
127.0.0.1:6379> hdel user age
(integer) 1
127.0.0.1:6379> hdel user age name
(integer) 0
127.0.0.1:6379> hdel user age username
(integer) 1
4、数が増加
语法:HINCRBYキーフィールドの増分
127.0.0.1:6379> hincrby user age 2 将用户的年龄加2
(integer) 22
127.0.0.1:6379> hget user age 获取用户的年龄
"22“
5、フィールドがあるか否かを判断します
语法:HEXISTSキーフィールド
127.0.0.1:6379> hexists user age 查看user中是否有age字段
(integer) 1
127.0.0.1:6379> hexists user name 查看user中是否有name字段
(integer) 0
6、唯一のフィールド名またはフィールド値を取得
構文:
- HKEYSキー
- クジラキー
127.0.0.1:6379> hmset user age 20 name lisi
OK
127.0.0.1:6379> hkeys user
1) "age"
2) "name"
127.0.0.1:6379> hvals user
1) "20"
2) "lisi"
図7に示すように、フィールドの番号を取得します
構文:[ユーザーの構成内のフィールドの数がHLENキーを返却]
127.0.0.1:6379> hlen user
(integer) 2
四は、リストの種類を一覧表示します
違いのArrayListとLinkedListの
- ArrayListには、データを格納するための配列を使用して、特徴:クエリ速い、遅い追加および削除
- 高速の追加や削除、遅いクエリが、すぐにデータのクエリリストの終了:LinkedListのは、格納されたデータ、機能を使用して二重にリンクされたリストです。
、リストを格納するためにリンクされたリストのRedis Redisの動作のためのデータ型のリストので、操作リストへのデータ操作の両端。
図1に示すように、リストの末端に要素を追加
リストの左側に要素を追加します。
構文:LPUSHキー値[値...]
127.0.0.1:6379> lpush list1 1 2 3
(integer) 3
右側のリストに要素を追加します。
127.0.0.1:6379> rpush list1 4 5 6
(integer) 3
2、リストを表示
LRANGEコマンドはセグメントのリストを取得するためのコマンドの最も一般的に使用されるタイプのリストのいずれかの、戻りスタート、ストップ間の全ての要素(要素の端部を含む)であり、インデックスは0から始まります。インデックスは、負であってもよい:「 - 1」右端の要素を表します。
構文:LRANGEキー、スタートストップ
127.0.0.1:6379> lrange list1 0 2
1) "3"
2) "2"
3) "1"
127.0.0.1:6379> lrange list1 0 -1
1) "3"
2) "2"
3) "1"
4) "4"
5) "5"
6) "6"
LRANGEスタート・ストップ
最初の要素のインデックスは0であるの先頭から開始
-1から右から左への出発最後に、停止要素-1
EX:LRANGEリスト3 -2 => [4,5]、包括的な
3、両端からの要素のポップアップリスト
LPOPコマンドは、左側のリストから要素をポップし、二段階で完了される:
最初のステップ:左のリストから削除要素のリスト
ステップ2を:要素の戻り値が除去されます。
構文:
- LPOPキー
- RPOPキー
127.0.0.1:6379> lpop list1
"1"
127.0.0.1:6379> rpop list1
"6"
図4に示すように、取得したリスト内の要素の数
構文:LLENキー
127.0.0.1:6379> llen list1
(integer)4
5、リストに指定された値を削除します
第1のカウント値のリストを削除するLREMコマンドは、値要素である、実際に削除されている要素の数を返します。オーダーの実施のカウント値に応じて異なることになります。
- 場合は、カウント> 0市、左側のリストから削除LREMを開始します。
- 数<0市、LREMは、右側のリストから削除開始します。
- カウント数= 0は、LREMは、値の値のすべての要素を削除する場合。
構文:LREMキーカウント値
127.0.0.1:6379> lrem list1 1 4 从左边开始删除值为4的元素
(integer)1
図6は、取得/要素の指定したインデックスの値を設定します
指定したインデックスの要素の値を取得
構文:LINDEXキーインデックス
127.0.0.1:6379> lindex list1 2
"5"
指定されたインデックスの要素の値
構文:LSETキーインデックス値
127.0.0.1:6379> lset list1 2 4
OK
127.0.0.1:6379> lrange list1 0 -1
1) "2"
2) "3"
3) "4"
7、指定されたリストの断片のみを残します
指定された範囲とLRANGEと一致して
構文:LTRIMキー、スタートストップ
127.0.0.1:6379> lrange list1 0 -1
1) "2"
2) "3"
3) "4"
127.0.0.1:6379> ltrim list1 0 1
OK
127.0.0.1:6379> lrange list1 0 -1
1) "4"
8、リストへの挿入要素
コマンドは、最初のリストの右のピボット要素値に左になります、2番目のパラメータに応じて前後に決定されるか、または要素の値の前または後に挿入されます。
语法:|ピボット値の前後LINSERTキー
127.0.0.1:6379> lrange list1 0 -1
1) "4"
127.0.0.1:6379> linsert list1 after 4 5
(integer) 2
127.0.0.1:6379> lrange list1 0 -1
1) "4"
2) "5"
図9に示すように、別のリストへの1つのリストからの元素
構文:RPOPLPUSHソース先
127.0.0.1:6379> rpoplpush list1 list2
"5"
127.0.0.1:6379> lrange list2 0 -1
1)"5"
127.0.0.1:6379> lrange list1 0 -1
1) "4"
五、セットコレクション型
セット(コレクション)とリスト(のリスト)との差:
- コレクションの種類:障害は繰り返しません
- リストタイプ:秩序、繰り返し可能
1、追加/削除要素
構文:SADD主要メンバー[メンバー...]
127.0.0.1:6379> sadd set1 a b c
(integer)3
127.0.0.1:6379> sadd set1 a
(integer)0
構文:SREMキーmemeber [メンバー...]
127.0.0.1:6379> srem set1 c d d不在集合中,故只移除c
(integer)1
2、すべての要素のコレクションを取得します。
構文:SMEMBERSキー
127.0.0.1:6379> smemebers set1
1)"b"
1)"a"
3は、コレクション内の要素かどうかが判定されます
構文:SISMEMBER主要メンバー
127.0.0.1:6379> sismember set1 a
(integer)1
127.0.0.1:6379> sismember set1 h
(integer)0
図4に示すように、操作コマンド
Aの現在のセットとの間の差を計算 - B
これは、AとBが構成に属さない要素の集合に属しています。
構文:SDIFFキー[キー...]
127.0.0.1:6379> sadd setA 1 2 3
(integer)3
127.0.0.1:6379> sadd setB 2 3 4
(integer)3
127.0.0.1:6379> sdiff setA setB
1)"1"
127.0.0.1:6379> sdiff setB setA
1)"4"
B。Aの積集合演算子∩B
Bに属する要素のコレクションとは、コンフィギュレーションに属します。
構文:焼結キー[キー...]
127.0.0.1:6379> sinter setA setB
1)"2"
2)"3"
C。和集合演算A∪B
要素の集合に属するA又はBに属する構成される。
構文:SUNIONキー[キー...]
127.0.0.1:6379> sunion setA setB
1) "1"
2) "2"
3) "3"
4) "4"
図5に示すように、セット内の要素の数を取得します
構文:SCARDキー
127.0.0.1:6379> smembers setA
1) "1"
2) "2"
3) "3"
127.0.0.1:6379> scard setA
(integer)3
6、コレクションからポップアップ要素
注:セットは順不同であるため、SPOPコマンドにランダムポップ要素のコレクションから選択することができます。
構文:SPOPキー
127.0.0.1:6379> spop setA
"1"
六、インデックス付けたSortedSetコレクション
ZSET呼ばれたSortedSetは、順序付きセット、ソート可能な、しかし、ユニークです。SortedSetとセットの違いは、それがスコアを追加する要素を設定し、並べ替え、このスコアになる、です。
図1に示すように、要素を追加
そして、要素がすでに存在する場合は要素の順序集合のスコアに要素を追加すると、新しいスコアを持つ古いスコアに置き換えられます。戻り値は、新たにセット内の要素の数に加算され、それが以前に既存の要素が含まれていません。
语法:ZADDキースコアメンバー[スコアメンバー...]
127.0.0.1:6379> zadd scoreboard 80 zhangesan 89 lisi 94 wangwu
(integer)3
127.0.0.1:6379> zadd scoreboard 97 lisi
(integer)0
2、要素は、スコアを取得します
構文:ZSCORE主要メンバー
127.0.0.1:6379> zscore scoreboard lisi
"97"
3、削除要素
1つまたは複数のメンバーのセットを注文し、何のメンバーが存在しないキーを削除しても、無視されます。
セットを注文しましたが、いない場合は、キーの種類が存在し、それがエラーを返します。
構文:ZREMキーメンバー[メンバー...]
127.0.0.1:6379> zrem scoreboard lisi
(integer)1
4は、リストの要素の範囲にランクを取得します
。エレメントスコア(要素の端部を含む)、停止の間のすべての要素を返す開始からのインデックスの昇順に従って
语法:ZRANGEキー、スタートストップ[WITHSCORES]
127.0.0.1:6379> zrange scoreboard 0 2
1)"zhangesan"
2)"wangwu"
3)"lisi"
停止の間のすべての要素に先頭からインデックスの降順で返さB。エレメントスコア(要素の端部を含みます)
语法:ZREVRANGEキー、スタートストップ[WITHSCORES]
127.0.0.1:6379> zrevrange scoredboard 0 2
1)"lisi"
2)"wangwu"
3)"zhangesan"
スコアは、要素を取得するために必要とされる場合は、コマンド尾部にWITHSCORESパラメータを追加することができます
127.0.0.1:6379> zrange scoreboard 0 1 WITHSCORES
1) "zhangsan"
2) "80"
3) "wangwu"
4) "94"
5、ランキング要素を取得
A。小から大へ
構文:ZRANK主要メンバー
127.0.0.1:6379> zrank scoreboard lisi
(integer)0
B。降順
構文:ZREVRANK主要メンバー
127.0.0.1:6379> zrevrank scoreboard zhangsan
(integer)1
6、スコアの指定された範囲の要素へのアクセス
语法:ZRANGEBYSCOREキー分最大[WITHSCORES] [LIMITオフセットのカウント]
127.0.0.1:6379> zrangebyscore scoreboard 90 97 WITHSCORES
1) "wangwu"
2) "94"
3) "lisi"
4) "97"
127.0.0.1:6379> zrangebyscore scoreboard 70 100 limit 1 2
1) "wangwu"
2) "lisi"
図7に示すように、要素のスコアを増加させます
戻り値は変更の一部であります
構文:ZINCRBYキーインクリメントメンバー
127.0.0.1:6379> zincrby scoreboard 4 lisi
"101"
図8に示すように、セット内の要素の数を取得します
構文:ZCARDキー
127.0.0.1:6379> zcard scoreboard
(integer)3
図9に示すように、要素の数は、スコアの指定された範囲内に得られます
構文:ZCOUNTキー最小最大
127.0.0.1:6379> zcount scoreboard 80 90
(integer) 1
10、位置の範囲に応じて、要素を削除
语法:ZREMRANGEBYRANKキー、スタートストップ
127.0.0.1:6379> zremrangebyrank scoreboard 0 1
(integer)2
127.0.0.1:6379> zrange scoreboard 0 -1
1)"lisi"
11、スコアの範囲に応じて要素を削除
構文:ZREMRANGEBYSCOREキー最小最大
127.0.0.1:6379> zadd scoreboard 84 zhangsan
(integer)1
127.0.0.1:6379> zremrangebyscore scoreboard 80 100
(integer)1
七、キーコマンド
1、キー
すべてのキー満足するの与えられたパターンを返します。
127.0.0.1:6379> keys mylist*
1) "mylist"
2) "mylist5"
3) "mylist6"
4) "mylist7"
5) "mylist8"
2、存在
確認のためのキーがあるかどうか
の例は:結果から、データベースがHongWanこのキーは存在しませんが、キーは、年齢の存在であります
127.0.0.1:6379> exists HongWan
(integer)0
127.0.0.1:6379> exists age
(integer)1
の3、
キーを削除するには
127.0.0.1:6379> del age
(integer)1
127.0.0.1:6379> exists age
(integer)0
4、名前の変更
キーの名前を変更
age_newへの年齢:例。
127.0.0.1:6379> keys *
1) "age"
127.0.0.1:6379> rename age age_new
OK
127.0.0.1:6379>keys *
1) "age_new"
5、タイプ
戻り値の種類
例:タイプの値の決意
127.0.0.1:6379> type addr
string
127.0.0.1:6379> type myzset2
set
127.0.0.1:6379> type mylist
list
6、生存時間のキーを設定します
実際の使用ではRedisのは、より多くのキャッシュとして使用されますが、キャッシュデータは、通常のライブまでの時間を、設定する必要があります。データ破壊の満了後。
EXPIRE key seconds 设置key的生存时间(单位:秒)key在多少秒后会自动删除
TTL key 设置key剩余的生存时间
PERSIST key 清除生存时间
PEXPIRE key milliseconds 生存时间设置单位为:毫秒
例:
127.0.0.1:6379> set test 1 设置test的值为1
OK
127.0.0.1:6379> get test 获取test的值
"1"
127.0.0.1:6379> EXPIRE test 5 设置test的生存时间为5秒
(integer)1
127.0.0.1:6379> TTL test 查看test的生于生成时间还有1秒删除
(integer)1
127.0.0.1:6379> TTL test
(integer) -2
127.0.0.1:6379> get test 获取test的值,已经删除
(nil)