Redisベースオペレーション
11364 ワード
一、Redis紹介
1.Redisはオープンソース(BSDライセンス)であり、メモリ内のデータ構造ストレージシステムであり、データベース、キャッシュ、メッセージミドルウェアとして使用することができる.
2.次のようなさまざまなタイプのデータ構造をサポートします.
文字列(strings)、ハッシュ(hashes)、リスト(lists)、セット(sets)、秩序化セット(sorted sets)、範囲クエリー、bitmaps、hyperlogs、地理空間インデックス半径クエリー.
3、Redisにはレプリケーション(replication)、LUAスクリプト(Lua scripting)、LRU駆動イベント(LRU eviction)、トランザクション(transactions)、および異なるレベルのディスク持続化(persistence)、Redis哨兵(Sentinal)および自動パーティション(Cluster)によって高可用性(highavailability)が提供されている.
二、Redisのデータ型
1、stringは最もよく使われるデータ型であり、通常のkey/valueストレージはこのようなものに分類することができる.
2、hashはstringタイプのfieldとvalueのマッピングテーブルであり、hashは特にオブジェクトを格納するのに適している.
3、listは簡単な文字列リストで、挿入順に並べ替えられます.リストのヘッダー(左)または末尾(右)に要素を追加できます.リストは、最新のメッセージランキングなどの機能を簡単に実現できます.
4、setはstringタイプの無秩序集合である.集合メンバーは一意です.これは、集合に重複するデータが表示されないことを意味します.集合はハッシュテーブルによって実現されるので,追加,削除,検索の複雑さはいずれもO(1)である.
5、sort Set秩序化集合は集合と同様にstringタイプ要素の集合であり、重複メンバーは許可されず、異なるのは各要素がdoubleタイプのスコアを関連付けていることである.redisは、集合内のメンバーをスコアで小さいものから大きいものに並べ替えるものです.秩序化された集合のメンバーは一意ですが、スコア(score)は繰り返すことができます.
三、Redis常用命令
Redisの起動:
Bash
接続:
Bash
1、すべてのキャッシュを表示するキー:keys*
2、データベース内のkeyの数を表示する:DBSIZE
3、あるキーの有効期限を設定する:EXPIRE testkey 60
4、listの長さを取得する:LLEN testlist
5、keyという名前のhashの中のすべてのキーを返す:HGETALL testhash
6、集合testkeyのすべてのメンバーを返す:SMEMBERS testkey
7、キャッシュをクリアし、削除されたtestkeyの数を返す:DEL keyname
四、KEY関連命令
1、KEYS pattern
指定したモードに一致するすべてのキーを検索し、keys*はすべてのキャッシュのキーを表示します.
2、EXISTS key
キーが存在するかどうかをクエリー
Bash
3、DUMP key
キーの値をエクスポートし、キーが存在しない場合はnilを返します.そうでない場合は、シーケンス化後の値を返します.
"\x00\x02v3\b\x00\xf1*K%b\xcd\x8e\xa0"
4、EXISTS key
キーが存在するかどうかをクエリー
Bash
5、EXPIRE key 20
キーの有効期限秒数(秒)を設定
6、TTL key
keyの有効時間(秒)を取得し、keyが存在しない場合は-2に戻り、EXPIRE keyと一緒に効果をテストすることをお勧めします.
7、EXPIRE key 20000
キーの有効時間(ミリ秒)の設定
8、PTTL key
keyを取得する有効ミリ秒数(ミリ秒)
9、RENAME key newkey
キーの名前を変更します.newkeyがすでに存在する場合は、名前を変更したキーのvalueを古いnewkeyが存在する値に上書きします.
10、RENAMENX key newkey
キーの名前を変更します.新しいキーは存在しないキーでなければなりません.変更に成功したら、1を返します.newキーがすでに存在している場合は、0を返します.
11、RANDOMKEY
ランダムなkeyを返す
12、TYPE key
取得keyのストレージタイプ
13、MOVE key db
キーを別のデータベースに移動
14、FLUSHDBとFLUSHALL
FLUSHDBは、現在のDBにあるすべてのデータを消去する(慎重に)
FLUSHALLはすべてのDBの中のすべてのデータをクリアします(使わないでください)
五、String関連命令
1、SET key value
keyのvalue値を設定
2、GET key
キーのvalueを返す
3、APPEND key value
keyに値を追加し、追加したvalueのサイズを返します.
4、GETSET key value
キーのvalueを設定し、設定前の値を取得し、キーが存在しない場合は新しいキーを設定し、設定前の値(nil)を返します.
Bash
5、MSET k1 v1 k2 v2 k3 v3 k4 v4 k5 v5
複数key valueの設定
6、MGET k1 k2 k3 k4 k5
すべてのkeyの値を取得
7、MSETNX k1 whb1 k2 whb2 k6 whb6 k7 whb7
キーが存在しない場合にのみ、複数のキーvalueを設定します.MSETNXは原子的で、いずれも成功するか、成功しないかです.
Bash
8、SETNX key value
同様に、キーが存在しない場合にのみキーの値を設定します.
Bash
9、SETEX key seconds value
key-valueを設定し、有効期限を設定します.
10、STRLEN key
指定したkey値の長さを取得
11、INCR key
原子加算1操作を実行するには、keyの値は64ビットの符号付き整数データでなければなりません.
指定したkeyが存在しない場合、incr操作を実行する前に値を0に設定します.
Bash
12、INCRBY key increment
原子に整数を追加
13、DECR key
整数原子マイナス1
14、DECRBY key increment
原子から整数を減算する
Bash
1、keyの値が整数でない場合、エラー(error)
2、INCR/DECR/INCRBY/DERBY、これらの操作はすべて計算後の結果を返す
3、指定したkeyが存在しない場合、incr操作を実行する前に、彼の値を0に設定します.
五、データ型の添削
1、文字列タイプ
作成と変更:set user'zhangsan'
keyの値の取得:get user
削除キーさくじょきー:del user del user del user
2、ハッシュタイプ
単一値作成:hset users id 1,hset users name'zhangsan'
単一値表示:hget users id
多値作成:hmset users id 1 name'zhangsan'age 20
多値表示:hmget users id name age//3つのデータを表示
hgetall users
ハッシュ内のキーの削除:hdel users age
3、listタイプ(スタック構造)
作成:lpush mylist'aaa'
表示:lrange mylist 0-1//全表示
ある要素を修正します:lset mylist 0'ccc'//0番目の位置の値をcccに変更します
リストの削除:del mylist
ポップアップ要素:lpop mylist
保留する以外の削除:ltrim mylist 0 1//0から1まで残して、その他の削除
valueに等しい要素の除去
lrem key 0 'eee'
リストで指定した値を表示
lindex mylist 1//2番目の値を表示
4、setタイプ
作成:sadd myset'aaa'
表示:smembers myset
5、秩序集合(sorted set)
作成:
zadd mysort 1 'aaa'
zadd mysort 3 'ccc'
zadd mysort 2 'bbb'
表示:
zrange mysort 0 -1 WITHSCORES
6、物事の処理
multi
複数のコマンド
exec
7、実行スクリプト
eval'コマンド
1.Redisはオープンソース(BSDライセンス)であり、メモリ内のデータ構造ストレージシステムであり、データベース、キャッシュ、メッセージミドルウェアとして使用することができる.
2.次のようなさまざまなタイプのデータ構造をサポートします.
文字列(strings)、ハッシュ(hashes)、リスト(lists)、セット(sets)、秩序化セット(sorted sets)、範囲クエリー、bitmaps、hyperlogs、地理空間インデックス半径クエリー.
3、Redisにはレプリケーション(replication)、LUAスクリプト(Lua scripting)、LRU駆動イベント(LRU eviction)、トランザクション(transactions)、および異なるレベルのディスク持続化(persistence)、Redis哨兵(Sentinal)および自動パーティション(Cluster)によって高可用性(highavailability)が提供されている.
二、Redisのデータ型
1、stringは最もよく使われるデータ型であり、通常のkey/valueストレージはこのようなものに分類することができる.
2、hashはstringタイプのfieldとvalueのマッピングテーブルであり、hashは特にオブジェクトを格納するのに適している.
3、listは簡単な文字列リストで、挿入順に並べ替えられます.リストのヘッダー(左)または末尾(右)に要素を追加できます.リストは、最新のメッセージランキングなどの機能を簡単に実現できます.
4、setはstringタイプの無秩序集合である.集合メンバーは一意です.これは、集合に重複するデータが表示されないことを意味します.集合はハッシュテーブルによって実現されるので,追加,削除,検索の複雑さはいずれもO(1)である.
5、sort Set秩序化集合は集合と同様にstringタイプ要素の集合であり、重複メンバーは許可されず、異なるのは各要素がdoubleタイプのスコアを関連付けていることである.redisは、集合内のメンバーをスコアで小さいものから大きいものに並べ替えるものです.秩序化された集合のメンバーは一意ですが、スコア(score)は繰り返すことができます.
三、Redis常用命令
Redisの起動:
Bash
redis-server
接続:
Bash
redis-cli -h 127.0.0.1 -p 6379
1、すべてのキャッシュを表示するキー:keys*
2、データベース内のkeyの数を表示する:DBSIZE
3、あるキーの有効期限を設定する:EXPIRE testkey 60
4、listの長さを取得する:LLEN testlist
5、keyという名前のhashの中のすべてのキーを返す:HGETALL testhash
6、集合testkeyのすべてのメンバーを返す:SMEMBERS testkey
7、キャッシュをクリアし、削除されたtestkeyの数を返す:DEL keyname
四、KEY関連命令
1、KEYS pattern
指定したモードに一致するすべてのキーを検索し、keys*はすべてのキャッシュのキーを表示します.
2、EXISTS key
キーが存在するかどうかをクエリー
Bash
127.0.0.1:6379> keys *
1) "k8"
2) "k7" 3) "key" 4) "k3" 127.0.0.1:6379> del k7 key (integer) 2 127.0.0.1:6379> keys * 1) "k8" 2) "k3"
3、DUMP key
キーの値をエクスポートし、キーが存在しない場合はnilを返します.そうでない場合は、シーケンス化後の値を返します.
"\x00\x02v3\b\x00\xf1*K%b\xcd\x8e\xa0"
4、EXISTS key
キーが存在するかどうかをクエリー
Bash
127.0.0.1:6379> dump key
(nil)
127.0.0.1:6379> dump k3
"\x00\x02v3\a\x00\xb75ri\xc3\x1e\xd1\x82" 127.0.0.1:6379> exists key (integer) 0 127.0.0.1:6379> exists k8 (integer) 1
5、EXPIRE key 20
キーの有効期限秒数(秒)を設定
6、TTL key
keyの有効時間(秒)を取得し、keyが存在しない場合は-2に戻り、EXPIRE keyと一緒に効果をテストすることをお勧めします.
7、EXPIRE key 20000
キーの有効時間(ミリ秒)の設定
8、PTTL key
keyを取得する有効ミリ秒数(ミリ秒)
9、RENAME key newkey
キーの名前を変更します.newkeyがすでに存在する場合は、名前を変更したキーのvalueを古いnewkeyが存在する値に上書きします.
10、RENAMENX key newkey
キーの名前を変更します.新しいキーは存在しないキーでなければなりません.変更に成功したら、1を返します.newキーがすでに存在している場合は、0を返します.
11、RANDOMKEY
ランダムなkeyを返す
12、TYPE key
取得keyのストレージタイプ
13、MOVE key db
キーを別のデータベースに移動
14、FLUSHDBとFLUSHALL
FLUSHDBは、現在のDBにあるすべてのデータを消去する(慎重に)
FLUSHALLはすべてのDBの中のすべてのデータをクリアします(使わないでください)
五、String関連命令
1、SET key value
keyのvalue値を設定
2、GET key
キーのvalueを返す
3、APPEND key value
keyに値を追加し、追加したvalueのサイズを返します.
4、GETSET key value
キーのvalueを設定し、設定前の値を取得し、キーが存在しない場合は新しいキーを設定し、設定前の値(nil)を返します.
Bash
127.0.0.1:6379> set key 111
OK
127.0.0.1:6379> get key
"111"
127.0.0.1:6379> append key 222 (integer) 6 127.0.0.1:6379> get key "111222" 127.0.0.1:6379> getset key 333 "111222" 127.0.0.1:6379> get key "333"
5、MSET k1 v1 k2 v2 k3 v3 k4 v4 k5 v5
複数key valueの設定
6、MGET k1 k2 k3 k4 k5
すべてのkeyの値を取得
7、MSETNX k1 whb1 k2 whb2 k6 whb6 k7 whb7
キーが存在しない場合にのみ、複数のキーvalueを設定します.MSETNXは原子的で、いずれも成功するか、成功しないかです.
Bash
127.0.0.1:6379> mset k1 v1 k2 v2 k3 v3
OK
127.0.0.1:6379> mget k1 k2
1) "v1"
2) "v2" 127.0.0.1:6379> msetnx k1 111 k7 777 (integer) 0 127.0.0.1:6379> mget k1 k7 1) "v1" 2) (nil)
8、SETNX key value
同様に、キーが存在しない場合にのみキーの値を設定します.
Bash
127.0.0.1:6379> setnx k1 111
(integer) 0
127.0.0.1:6379> setnx k8 888
(integer) 1
9、SETEX key seconds value
key-valueを設定し、有効期限を設定します.
10、STRLEN key
指定したkey値の長さを取得
11、INCR key
原子加算1操作を実行するには、keyの値は64ビットの符号付き整数データでなければなりません.
指定したkeyが存在しない場合、incr操作を実行する前に値を0に設定します.
Bash
127.0.0.1:6379> strlen k1
(integer) 2
127.0.0.1:6379> incr k1
(error) ERR value is not an integer or out of range 127.0.0.1:6379> incr k7 (integer) 1 127.0.0.1:6379> get k7 "1" 127.0.0.1:6379> get k1 "v1" 127.0.0.1:6379> incr k9 (integer) 1 127.0.0.1:6379> get k9 "1"
12、INCRBY key increment
原子に整数を追加
13、DECR key
整数原子マイナス1
14、DECRBY key increment
原子から整数を減算する
Bash
127.0.0.1:6379> decr k7
(integer) 3
127.0.0.1:6379> incr k7
(integer) 4 127.0.0.1:6379> incrby k7 3 (integer) 7 127.0.0.1:6379> decr k7 (integer) 6 127.0.0.1:6379> decrby k7 1 (integer) 5
1、keyの値が整数でない場合、エラー(error)
2、INCR/DECR/INCRBY/DERBY、これらの操作はすべて計算後の結果を返す
3、指定したkeyが存在しない場合、incr操作を実行する前に、彼の値を0に設定します.
五、データ型の添削
1、文字列タイプ
作成と変更:set user'zhangsan'
keyの値の取得:get user
削除キーさくじょきー:del user del user del user
2、ハッシュタイプ
単一値作成:hset users id 1,hset users name'zhangsan'
単一値表示:hget users id
多値作成:hmset users id 1 name'zhangsan'age 20
多値表示:hmget users id name age//3つのデータを表示
hgetall users
ハッシュ内のキーの削除:hdel users age
3、listタイプ(スタック構造)
作成:lpush mylist'aaa'
表示:lrange mylist 0-1//全表示
ある要素を修正します:lset mylist 0'ccc'//0番目の位置の値をcccに変更します
リストの削除:del mylist
ポップアップ要素:lpop mylist
保留する以外の削除:ltrim mylist 0 1//0から1まで残して、その他の削除
valueに等しい要素の除去
lrem key 0 'eee'
リストで指定した値を表示
lindex mylist 1//2番目の値を表示
4、setタイプ
作成:sadd myset'aaa'
表示:smembers myset
5、秩序集合(sorted set)
作成:
zadd mysort 1 'aaa'
zadd mysort 3 'ccc'
zadd mysort 2 'bbb'
表示:
zrange mysort 0 -1 WITHSCORES
6、物事の処理
multi
複数のコマンド
exec
7、実行スクリプト
eval'コマンド