RedisにおけるKeyに関する共通命令の詳細
7060 ワード
Redisは、ANSI C言語を使用して作成され、ネットワークをサポートするオープンソースであり、memcacheよりもRedisでメモリベースで永続化可能なログ型、Key-Value型のNoSQLデータベースを実現し、RedisではKeyのタイプも豊富である.そこで広く生産環境で使用されているが,ここではRedisにおけるKeyに関する一般的な命令について述べる.
まず、Redisでキーを押すと、Redisのキーは文字列タイプですが、キーには境界文字("")を含めることはできません.キーはbinary safeの文字列ではありませんので、「myキー」や「mykey」のようにスペースや改行を含むキーは許されませんので、使用するときはキーの名前を複雑にしないことをお勧めします.redisの下のVauleには、string(文字列)、hash(ハッシュ)、list(リスト)、set(セット)、sorted set(秩序セット)の5つのデータ型があります.
ここでRedisのシステム管理命令は以下の通りである.
Redisの通常のKey操作命令は以下の通りである.
Redisには5種類の異なるタイプのKeyがあるので、具体的な異なるタイプのKeyでは使用が異なりますが、以下では一つ一つ紹介します.
一、stringタイプ
stringは最も基本的なタイプであり、stringタイプはバイナリセキュリティです.redisのstringは任意のデータを含むことができるという意味です.例えばjpgピクチャやシーケンス化されたオブジェクト.内部実装からstringはbyte配列と見なすことができ,最大上限は1 Gバイトである.
stringタイプデータ操作指令:
二、hashタイプ
hashはstringタイプのfieldとvalueのマッピングテーブルです.追加,削除ともにO(1)(平均)である.hashは特にオブジェクトを格納するのに適している.オブジェクトの各フィールドを単一stringタイプに保存することに対して.1つのオブジェクトをhashタイプに格納すると、より少ないメモリが消費され、オブジェクト全体へのアクセスが容易になります.メモリを節約する理由は、hashオブジェクトを新規作成するときからzipmap(small hashとも呼ばれる)で格納されるためです.このzipmapは実際にはhash tableではありませんが、zipmapは通常のhash実装よりもhash自体に必要なメタデータストレージのオーバーヘッドを節約することができます.zipmapの追加、削除、検索はすべてO(n)ですが、一般的なオブジェクトのfield数はあまり多くありません.だからzipmapを使うのも速いです.つまり、追加削除平均はO(1)です.fieldまたはvalueのサイズが一定の制限を超えた場合、redisはzipmapを内部で正常なhashに自動的に置き換えて実装します.この制限はプロファイルで指定できます.次のようになります.
hashタイプデータ操作指令:
三、listタイプ
Listはチェーンテーブル構造であり、各サブ要素がstringタイプの双方向チェーンテーブルであると理解できる.主な機能はpush,pop,1つの範囲のすべての値を取得するなどである.操作中keyはチェーンテーブルの名前として理解される.
Listタイプデータ操作指令:
四、setタイプ
setは無秩序集合であり、最大(2の32次方程式-1)個の要素を含むことができる.setはhash tableで実現されるので,追加,削除,検索の複雑さはいずれもO(1)である.hash tableは、追加または削除に伴って自動的にサイズ変更されます.hash tableサイズを調整するときに同期(書き込みロックの取得)を必要とすると、他の読み書き操作がブロックされることに注意してください.やがてジャンプリスト(skip list)に変更されるかもしれません.ジャンプテーブルはすでにsorted setsで使用されています.setセットタイプについては、基本的な削除操作の追加に加えて、セットの並列セット(union)、交差(intersection)、差分セット(difference)も含まれます.
setタイプデータ操作指令:
五、sorted setタイプ
sorted setは秩序化された集合であり、setに基づいて順序属性を追加します.この属性は修正要素を追加するときに指定できます.指定するたびに、自動的に新しい値で順序を調整します.2列のmysqlテーブル、1列value、1列格納順序が理解できます.操作中keyはsorted setの名前として理解される.
Sorted Setタイプデータ操作命令:
そのためにRedisのKeyに関するコマンドを紹介しました.
転載先:https://blog.51cto.com/jim123/1978272
まず、Redisでキーを押すと、Redisのキーは文字列タイプですが、キーには境界文字("")を含めることはできません.キーはbinary safeの文字列ではありませんので、「myキー」や「mykey」のようにスペースや改行を含むキーは許されませんので、使用するときはキーの名前を複雑にしないことをお勧めします.redisの下のVauleには、string(文字列)、hash(ハッシュ)、list(リスト)、set(セット)、sorted set(秩序セット)の5つのデータ型があります.
ここでRedisのシステム管理命令は以下の通りである.
PING redis PONG。
DBSIZE key 。
INFO redis 。
MONITOR redis 。
SHUTDOWN , redis 。
CONFIG GET parameter redis 。( )
CONFIG SET parameter value redis 。( )
CONFIG RESETSTAT INFO 。( :Keyspace 、Keyspace 、 , 、 key )
DEBUG OBJECT key key 。
DEBUG SEGFAULT redis 。
###### , , ##########
FLUSHDB key。
FLUSHALL key。
Redisの通常のKey操作命令は以下の通りである.
exits key key , 1 ,0
del key1 key2 ...... keyN key, key ,0 key
type key key 。 none key ,string ,list set ......
keys pattern key
randomkey key, ,
rename oldkey newkey key, newkey , , 1 ,0 。 oldkey newkey 。
renamenx oldkey newkey , newkey 。
expire key seconds key , 。 1 ,0 key 。
ttl key key 。-1 key 。
select db-index , 0, 16 。 1 ,0 。
move key db-index key 。 1 。0 key 。
Redisには5種類の異なるタイプのKeyがあるので、具体的な異なるタイプのKeyでは使用が異なりますが、以下では一つ一つ紹介します.
一、stringタイプ
stringは最も基本的なタイプであり、stringタイプはバイナリセキュリティです.redisのstringは任意のデータを含むことができるという意味です.例えばjpgピクチャやシーケンス化されたオブジェクト.内部実装からstringはbyte配列と見なすことができ,最大上限は1 Gバイトである.
stringタイプデータ操作指令:
set key value key string , 1 ,0 。
setnx key value key , key string 。 key , 0。
get key key string , key nil
getset key value key , key 。 key nil。
mget key1 key2 ...... keyN key , key , nil。
mset key1 value1 ...... keyN valueN key , 1 , 0 。
msetnx key1 value1 ...... keyN valueN key , key
incr key key ++ , 。 incr int value ,incr key, key 1。
decr key key -- ,decr key, key -1。
incrby key integer key ,key key, value 0。
decrby key integer key 。decrby , incrby , 。
二、hashタイプ
hashはstringタイプのfieldとvalueのマッピングテーブルです.追加,削除ともにO(1)(平均)である.hashは特にオブジェクトを格納するのに適している.オブジェクトの各フィールドを単一stringタイプに保存することに対して.1つのオブジェクトをhashタイプに格納すると、より少ないメモリが消費され、オブジェクト全体へのアクセスが容易になります.メモリを節約する理由は、hashオブジェクトを新規作成するときからzipmap(small hashとも呼ばれる)で格納されるためです.このzipmapは実際にはhash tableではありませんが、zipmapは通常のhash実装よりもhash自体に必要なメタデータストレージのオーバーヘッドを節約することができます.zipmapの追加、削除、検索はすべてO(n)ですが、一般的なオブジェクトのfield数はあまり多くありません.だからzipmapを使うのも速いです.つまり、追加削除平均はO(1)です.fieldまたはvalueのサイズが一定の制限を超えた場合、redisはzipmapを内部で正常なhashに自動的に置き換えて実装します.この制限はプロファイルで指定できます.次のようになります.
hash-max-zipmap-entries 64 # 64
hash-max-zipmap-value 512 # value 512
hashタイプデータ操作指令:
hset key field value hash field , key ,
hget key field hash field。
hmget key filed1....fieldN hash filed。
hmset key filed1 value1 ...... filedN valueN hash field。
hincrby key field integer hash filed 。 hash filed 。
hexists key field field 。
hdel key field hash field。
hlen key hash field 。
hkeys key hash field。
hvals key hash value。
hgetall hash filed value
三、listタイプ
Listはチェーンテーブル構造であり、各サブ要素がstringタイプの双方向チェーンテーブルであると理解できる.主な機能はpush,pop,1つの範囲のすべての値を取得するなどである.操作中keyはチェーンテーブルの名前として理解される.
Listタイプデータ操作指令:
lpush key string key list , 1 ,0 key list 。
rpush key string key list 。
llen key key list , key 0, key list 。
lrange key start end , 0 , ,-1 ,key 。
ltrim key start end list , 1,key 。
lset key index value list , 1,key 。
lrem key count value List (count ) (count ) (count) value , 。count 0 。
lpop key list 。 key list nil, key list 。
rpop key list 。
blpop key1 ...... keyN timeout , list lpop , blpop list1 list2 list3 0 , list list2,list3 list2 lpop list2 。 list , timeout ,timeout 0 。 , client key1...keyN key push , key client 。 , nil。 unix select poll。
brpop blpop, 。
四、setタイプ
setは無秩序集合であり、最大(2の32次方程式-1)個の要素を含むことができる.setはhash tableで実現されるので,追加,削除,検索の複雑さはいずれもO(1)である.hash tableは、追加または削除に伴って自動的にサイズ変更されます.hash tableサイズを調整するときに同期(書き込みロックの取得)を必要とすると、他の読み書き操作がブロックされることに注意してください.やがてジャンプリスト(skip list)に変更されるかもしれません.ジャンプテーブルはすでにsorted setsで使用されています.setセットタイプについては、基本的な削除操作の追加に加えて、セットの並列セット(union)、交差(intersection)、差分セット(difference)も含まれます.
setタイプデータ操作指令:
sadd key member string key set , 1, 0,key set 。
srem key member key set , 1, member key 0, key set 。
spop key key set , set key nil。
srandmember key spop, set , 。
smove srckey dstkey member srckey set member dstkey set , 。 1, member srckey 0, key set 。
scard key set , set key 0。
sismember key member member set , 1,0 key 。
sinter key1 key2 …… keyN key 。
sinterstore dstkey key1 ....... keyN key , dstkey 。
sunion key1 key2 ...... keyN key 。
sunionstore dstkey key1 ...... keyN key , dstkey 。
sdiff key1 key2 ...... keyN key 。
sdiffstore dstkey key1 ...... keyN key , dstkey 。
smembers key key set , 。
五、sorted setタイプ
sorted setは秩序化された集合であり、setに基づいて順序属性を追加します.この属性は修正要素を追加するときに指定できます.指定するたびに、自動的に新しい値で順序を調整します.2列のmysqlテーブル、1列value、1列格納順序が理解できます.操作中keyはsorted setの名前として理解される.
Sorted Setタイプデータ操作命令:
add key score member , score。
zrem key member ,1 , 0。
zincrby key incr member member score , skip list 。 score 。
zrank key member ( ), score 。
zrevrank key member , score 。
zrange key start end lrange 。
zrevrange key start end , score 。
zrangebyscore key min max score 。
zcount key min max score 。
zcard key 。
zscore key element score。
zremrangebyrank key min max 。
zremrangebyscore key min max score
そのためにRedisのKeyに関するコマンドを紹介しました.
転載先:https://blog.51cto.com/jim123/1978272