Redis共通アクションコマンド
10345 ワード
最近のプロジェクトでは、Redisをアプリケーションキャッシュとして使用しており、Redisの一般的な操作を理解し、熟知するために、このノートを整理し、Redisに関する操作を迅速に理解できるようにしたいと考えています.
A.常用管理命令 Redis を起動
redis-server[--port 6379]コマンドパラメータが多すぎる場合は、プロファイルからRedisを起動することを推奨します.
redis-server[xx/xx/redis.conf]6379はRedisのデフォルトポート番号です.接続Redis ./redis-cli [-h 127.0.0.1 -p 6379] Redis を停止する.
redis-cli shutdown
kill redis-pid以上の2つのRedisコマンドを停止する効果は同じです.コマンドをRedisに送信コマンドには2つの方式がある: .
1.redis-cli帯域パラメータ運転、例えば:
redis-cli shutdown not connected>は、デフォルトでローカルの6379ポートに送信されます.
2、redis-cliはパラメータなしで運行する.例えば:
./redis-cli試験連通性
B.key操作コマンドすべてのキー を取得する.
構文:keys pattern*はワイルドカードを表し、任意の文字を表し、すべてのキーを巡ってすべてのキーリストを表示し、時間の複雑さO(n)は、本番環境では推奨されません. 取得キー総数 構文:dbsize
キー総数を取得するとすべてのキーを巡回せず,内部変数,時間複雑度O(1)を直接取得する.クエリキーが存在するかどうか 構文:exists key[key...]
複数のクエリーをクエリーし、存在する数を返します.削除キー 構文:del key[key...]
複数を削除して、削除に成功した数を返すことができます.クエリー・キー・タイプ 構文:type key移動キー 構文:move key db
例:javastackを2番データベースに移動します.クエリーkeyのライフサイクル(秒) 構文(取得秒):ttl key 構文(ミリ秒取得):pttl key 有効期限 を設定する.[秒]構文:expire key seconds [ミリ秒]構文:pexpire key milliseconds 無期限設定 構文:persist keyキー名 を変更
構文:rename key newkey
C.文字列操作コマンド
文字列はRedisの最も基本的なデータ型であり、単一のデータが格納できる最大空間は512 Mである.キー値 を格納.
構文:set key value[EX seconds][PX milliseconds][NX|XX] nx:keyが存在しない場合に確立され、 xx:keyが存在する場合、その値を変更するか、setnx/setexコマンドを直接使用することもできます. キー値 を取得する.
構文:get key値増加/減少 文字列の値が数値タイプの場合、incrコマンドを使用して毎回増加し、数値タイプでない場合はエラーを報告できます.
構文:incr key
一度にNをインクリメントしたい場合はincrbyコマンド、浮動小数点型データであればincrbyfloatコマンドでインクリメントできます.同様に、減算はdecr、decrbyコマンドを使用します.一括格納キー値 構文:mset key value[key value...]取得キー値 構文:mgetkey[key...]
RedisはUTF-8のコードを受け取り、中国語なら漢字1文字で3桁を占める.取得値長 構文:strlen key strlen keyキー値に内容 を追加する.
構文:append key value
キー値の末尾に追加し、コマンド実行後666から666 hiに変更します.部分文字 を取得
構文:getrange key start end
D.集合操作コマンド
コレクションタイプはリストタイプと似ていますが、コレクションは無秩序で重複できません.
D.1. しゅうごう記憶値 構文:sadd key member[member...]取得要素 すべての要素構文の取得:smembers key
ランダム取得構文:srandmember langs count集合に要素が存在するか否かを判断する .
構文:sismember key member取得集合要素個数 構文:scard keyコレクション要素 を削除
構文:srem key member[member...]ポップアップ要素 構文:spop key[count]
D.1. ちくじしゅうごう
順序付きコレクションとリストの違い:リストはチェーンテーブルを使用して実現され、両端が速く、中間が遅い.秩序化された集合はハッシュ・リストとジャンプ・テーブルで実現され,中間の要素を読み取っても比較的速い. リストは要素の位置を調整することはできませんが、順序付き集合は要素の位置を調整することができます. の順序付けされたセットは、リストよりもメモリを占めます. 記憶値 構文:zadd key[NX|XX][CH][INCR]score member[score member...]要素スコア を取得
構文:zscore key member取得ランキング範囲 構文:zrange key start stop[WITHSCORES]指定点数範囲ランキング を取得
構文:zrangebyscore key min[WITHSCORES][LIMIT offset count]指定要素分率 を増加する.
構文:zincrby key increment member取得集合要素個数 構文:zcard key指定範囲分数個数 を取得する.
構文:zcount key min max指定要素 を削除する.
構文:zrem key member[member...]取得要素ランキング 構文:zrankkey member
E.リスト操作コマンド
リストタイプは秩序あるフィールド列のリストで、内部は双方向チェーンテーブルを使用して実現され、両端に要素を操作することができ、両端のデータを取得する速度が速く、インデックスを通じて具体的な行数にインデックスするのが遅い.
リストタイプの要素は秩序正しく、繰り返し可能です.記憶値 左端メモリ値構文:lpush key value[value...]
右端メモリ値構文:rpush key value[value...]
インデックス値構文:lset key index valueポップアップ要素 左端ポップアップ構文:lpop key
右端ポップアップ構文:rpop key取得要素個数 構文:llen keyリスト要素 を取得する.
両側取得構文:lrange key start stop
インデックス取得構文:lindex key index削除要素 値に基づいて構文を削除する:lrem key count value
範囲削除構文:ltrim key start stop
F.ハッシュ操作コマンド
Redis文字列タイプキーと値はディクショナリ構造形式であり、ここでのハッシュタイプの値はディクショナリ構造であってもよい.キー値 を格納.
単一ハッシュ構文:hset key field value
複数のハッシュ構文:hmset key field value[field value...]
ハッシュが存在しない場合の構文:hsetnx key field valueフィールド値 を取得
単一構文:hget key field
複数の構文:hmget key field[field...]すべてのキー値 を取得する.
構文:hgetall keyすべてのフィールド を取得
構文:hkeys keyすべての値 を取得
構文:hvals keyフィールドが存在するか否かを判定する .
構文:hexists key field取得フィールド数 構文:hlen keyハッシュ増加/減少 構文:hincrby key field incrementハッシュフィールド を削除
構文:hdel key field[field...]
A.常用管理命令
redis-server[--port 6379]コマンドパラメータが多すぎる場合は、プロファイルからRedisを起動することを推奨します.
redis-server[xx/xx/redis.conf]6379はRedisのデフォルトポート番号です.
redis-cli shutdown
kill redis-pid以上の2つのRedisコマンドを停止する効果は同じです.
1.redis-cli帯域パラメータ運転、例えば:
redis-cli shutdown not connected>は、デフォルトでローカルの6379ポートに送信されます.
2、redis-cliはパラメータなしで運行する.例えば:
./redis-cli
127.0.0.1:6379> shutdown
not connected>
127.0.0.1:6379> ping
PONG
B.key操作コマンド
構文:keys pattern
127.0.0.1:6379> keys *
1) "javastack"
127.0.0.1:6379> dbsize
(integer) 6
キー総数を取得するとすべてのキーを巡回せず,内部変数,時間複雑度O(1)を直接取得する.
127.0.0.1:6379> exists javastack java
(integer) 2
複数のクエリーをクエリーし、存在する数を返します.
127.0.0.1:6379> del java javastack
(integer) 1
複数を削除して、削除に成功した数を返すことができます.
127.0.0.1:6379> type javastack
string
例:javastackを2番データベースに移動します.
127.0.0.1:6379> move javastack 2
(integer) 1
127.0.0.1:6379> select 2
OK
127.0.0.1:6379[2]> keys *
1) "javastack"
127.0.0.1:6379[2]> ttl javastack
(integer) -1
-1: 。
127.0.0.1:6379[2]> expire javastack 60
(integer) 1
127.0.0.1:6379[2]> ttl javastack
(integer) 55
127.0.0.1:6379[2]> persist javastack
(integer) 1
構文:rename key newkey
127.0.0.1:6379[2]> rename javastack javastack123
OK
C.文字列操作コマンド
文字列はRedisの最も基本的なデータ型であり、単一のデータが格納できる最大空間は512 Mである.
構文:set key value[EX seconds][PX milliseconds][NX|XX]
127.0.0.1:6379> set javastack 666
OK
構文:get key
127.0.0.1:6379[2]> get javastack
"666"
構文:incr key
127.0.0.1:6379[2]> incr javastack
(integer) 667
一度にNをインクリメントしたい場合はincrbyコマンド、浮動小数点型データであればincrbyfloatコマンドでインクリメントできます.同様に、減算はdecr、decrbyコマンドを使用します.
127.0.0.1:6379[2]> mset java1 1 java2 2 java3 3
OK
127.0.0.1:6379[2]> mget java1 java2
1) "1"
2) "2"
RedisはUTF-8のコードを受け取り、中国語なら漢字1文字で3桁を占める.
127.0.0.1:6379[2]> strlen javastack
(integer) 3
構文:append key value
127.0.0.1:6379[2]> append javastack hi
(integer) 5
キー値の末尾に追加し、コマンド実行後666から666 hiに変更します.
構文:getrange key start end
127.0.0.1:6379[2]> getrange javastack 0 4
"javas"
D.集合操作コマンド
コレクションタイプはリストタイプと似ていますが、コレクションは無秩序で重複できません.
D.1. しゅうごう
// 8 (2 java), 7
127.0.0.1:6379> sadd langs java php c++ go ruby python kotlin java
(integer) 7
127.0.0.1:6379> smembers langs
1) "php"
2) "kotlin"
3) "c++"
4) "go"
5) "ruby"
6) "python"
7) "java"
ランダム取得構文:srandmember langs count
127.0.0.1:6379> srandmember langs 3
1) "c++"
2) "java"
3) "php"
構文:sismember key member
127.0.0.1:6379> sismember langs go
(integer) 1
127.0.0.1:6379> scard langs
(integer) 7
構文:srem key member[member...]
127.0.0.1:6379> srem langs ruby kotlin
(integer) 2
127.0.0.1:6379> spop langs 2
1) "go"
2) "java"
D.1. ちくじしゅうごう
順序付きコレクションとリストの違い:
127.0.0.1:6379> zadd footCounts 16011 tid 20082 huny 2893 nosy
(integer) 3
構文:zscore key member
127.0.0.1:6379> zscore footCounts tid
"16011"
// ,
127.0.0.1:6379> zrange footCounts 0 -1
1) "nosy"
2) "tid"
3) "huny"
//
127.0.0.1:6379> zrange footCounts 0 -1 Withscores
1) "nosy"
2) "2893"
3) "tid"
4) "16011"
5) "huny"
6) "20082"
構文:zrangebyscore key min[WITHSCORES][LIMIT offset count]
127.0.0.1:6379> zrangebyscore footCounts 3000 30000 withscores limit 0 1
1) "tid"
2) "16011"
構文:zincrby key increment member
127.0.0.1:6379> zincrby footCounts 2000 tid
"18011"
127.0.0.1:6379> zcard footCounts
(integer) 3
構文:zcount key min max
127.0.0.1:6379> zcount footCounts 2000 20000
(integer) 2
構文:zrem key member[member...]
127.0.0.1:6379> zrem footCounts huny
(integer) 1
127.0.0.1:6379> zrank footCounts tid
(integer) 1
E.リスト操作コマンド
リストタイプは秩序あるフィールド列のリストで、内部は双方向チェーンテーブルを使用して実現され、両端に要素を操作することができ、両端のデータを取得する速度が速く、インデックスを通じて具体的な行数にインデックスするのが遅い.
リストタイプの要素は秩序正しく、繰り返し可能です.
127.0.0.1:6379> lpush list lily sandy
(integer) 2
右端メモリ値構文:rpush key value[value...]
127.0.0.1:6379> rpush list tom kitty
(integer) 4
インデックス値構文:lset key index value
127.0.0.1:6379> lset list 3 uto
OK
127.0.0.1:6379> lpop list
"sandy"
右端ポップアップ構文:rpop key
127.0.0.1:6379> rpop list
"kitty"
127.0.0.1:6379> llen list
(integer) 2
両側取得構文:lrange key start stop
127.0.0.1:6379> lpush users tom kitty land pony jack maddy
(integer) 6
127.0.0.1:6379> lrange users 0 3
1) "maddy"
2) "jack"
3) "pony"
4) "land"
//
127.0.0.1:6379> lrange users 0 -1
1) "maddy"
2) "jack"
3) "pony"
4) "land"
5) "kitty"
6) "tom"
//
127.0.0.1:6379> lrange users -3 -1
1) "land"
2) "kitty"
3) "tom"
インデックス取得構文:lindex key index
127.0.0.1:6379> lindex list 2
"ketty"
//
127.0.0.1:6379> lindex list -5
"sady"
127.0.0.1:6379> lpush userids 111 222 111 222 222 333 222 222
(integer) 8
// count=0
127.0.0.1:6379> lrem userids 0 111
(integer) 2
// count > 0 count
127.0.0.1:6379> lrem userids 3 222
(integer) 3
// count < 0 count
127.0.0.1:6379> lrem userids -3 222
(integer) 2
範囲削除構文:ltrim key start stop
// 2-4
127.0.0.1:6379> ltrim list 2 4
OK
F.ハッシュ操作コマンド
Redis文字列タイプキーと値はディクショナリ構造形式であり、ここでのハッシュタイプの値はディクショナリ構造であってもよい.
単一ハッシュ構文:hset key field value
127.0.0.1:6379> hset user name javastack
(integer) 1
複数のハッシュ構文:hmset key field value[field value...]
127.0.0.1:6379> hmset user name javastack age 20 address china
OK
ハッシュが存在しない場合の構文:hsetnx key field value
127.0.0.1:6379> hsetnx user tall 180
(integer) 0
単一構文:hget key field
127.0.0.1:6379> hget user age
"20"
複数の構文:hmget key field[field...]
127.0.0.1:6379> hmget user name age address
1) "javastack"
2) "20"
3) "china"
構文:hgetall key
127.0.0.1:6379> hgetall user
1) "name"
2) "javastack"
3) "age"
4) "20"
5) "address"
6) "china"
構文:hkeys key
127.0.0.1:6379> hkeys user
1) "name"
2) "address"
3) "tall"
4) "age"
構文:hvals key
127.0.0.1:6379> hvals user
1) "javastack"
2) "china"
3) "170"
4) "20"
構文:hexists key field
127.0.0.1:6379> hexists user address
(integer) 1
127.0.0.1:6379> hlen user
(integer) 4
127.0.0.1:6379> hincrby user tall -10
(integer) 170
構文:hdel key field[field...]
127.0.0.1:6379> hdel user age
(integer) 1