Redisの5つのストレージタイプとその適用シーン
6512 ワード
共通データ型の概要:
redisではstring,hash,list,set,zsetの5種類のデータ型がよく用いられる.
1.Stringタイプ
Stringは最も簡単なタイプで、1つのkeyは1つのvalueに対応します
Stringタイプのデータは最大1 Gです.Stringタイプの値はintegerと見なすことができ、「INCR」コマンドファミリー操作(incrby、decr、decrby)を可能にし、この場合、このintegerの値は64ビットの符号数に制限される.リスト、set、およびzsetに含まれる独立した要素タイプは、Redis Stringタイプです.
2.Listタイプ
チェーンテーブルタイプで、主な機能はpush、pop、1つの範囲のすべての値を取得するなどです.その中のkeyはチェーンテーブルの名前として理解できます.
RedisではlistがRedis Stringのリストであり,挿入順に並べ替えられる.たとえばLPUSHコマンドを使用してリストヘッダに要素を挿入し、RPUSHコマンドを使用してリストの最後に要素を挿入します.この2つのコマンドの1つが空のkeyに作用すると、新しいlistが作成されます.
Listの最大長は2^32−1要素である.
3.Setタイプ
集合は、数学の集合概念と似ています.操作中のkeyは集合の名前として理解される.
RedisではsetはRedis Stringの無秩序な集合であり,重複要素は許されない.
Setの最大要素数は2^32−1である.
Redisではsetに対する操作として,交差,並列,差分などがある.
4.ZSet(Sorted Set)タイプ
Zsetはsetのアップグレードバージョンで、setに基づいて順序属性が追加されました.この属性は修正要素を追加するときに指定できます.指定するたびにzsetは指定値を自動的にインストールして順序を再調整します.1枚のテーブル、1列value、1列順序として理解できます.操作中のkeyはzsetの名前として理解される.
Zsetの最大要素数は2^32-1です.
順序付けされたzsetの場合、SORTコマンドを使用して、ASC|DESCパラメータを指定してソートできます.
5.hashタイプ
hashは、リレーショナル・データベース構造に最も近いデータ型であり、データベースのレコードまたはプログラム内のオブジェクトをhashmapに変換してredisに格納できます.
二、jedis操作コマンド:
1.value操作のコマンド
2.String操作のコマンド
3.List操作のコマンド
4.Set操作のコマンド
5.zset(sorted set)操作のコマンド
6.Hash操作のコマンド
三、各種データ型に対応する応用シーン
1.Stringタイプの適用シーン
Stringは最もよく使われるデータ型で、普通のkey/value記憶である.
2.listタイプの適用シーン
比較は、リスト・ストレージに適用され、順序が比較的固定されます.たとえば、次のようになります.
省、都市リスト
ブランド、メーカー、車系、車種などのリスト
解体工場のテーマリスト...
3.setタイプの適用シーン
Setが提供する機能はlistと同様で、リストデータを格納する必要があり、重複データが発生したくない場合はsetを選択できます.
4.zset(sorted set)タイプの適用シーン
zsetの使用シーンはsetと類似しており、setは自動的に整列するものではないが、zsetはユーザが優先度(score)のパラメータを追加してメンバーをソートすることができ、整列を挿入する、すなわち自動ソートである.秩序正しく重複しないコレクションリストが必要な場合は、zsetデータ構造を選択できます.例:
PV順の人気車種リスト
時間順のニュースリスト
5.hashタイプの適用シーン
テーブルレコードのようなストレージ
ページビューに必要なデータの格納
redisではstring,hash,list,set,zsetの5種類のデータ型がよく用いられる.
1.Stringタイプ
Stringは最も簡単なタイプで、1つのkeyは1つのvalueに対応します
Stringタイプのデータは最大1 Gです.Stringタイプの値はintegerと見なすことができ、「INCR」コマンドファミリー操作(incrby、decr、decrby)を可能にし、この場合、このintegerの値は64ビットの符号数に制限される.リスト、set、およびzsetに含まれる独立した要素タイプは、Redis Stringタイプです.
2.Listタイプ
チェーンテーブルタイプで、主な機能はpush、pop、1つの範囲のすべての値を取得するなどです.その中のkeyはチェーンテーブルの名前として理解できます.
RedisではlistがRedis Stringのリストであり,挿入順に並べ替えられる.たとえばLPUSHコマンドを使用してリストヘッダに要素を挿入し、RPUSHコマンドを使用してリストの最後に要素を挿入します.この2つのコマンドの1つが空のkeyに作用すると、新しいlistが作成されます.
Listの最大長は2^32−1要素である.
3.Setタイプ
集合は、数学の集合概念と似ています.操作中のkeyは集合の名前として理解される.
RedisではsetはRedis Stringの無秩序な集合であり,重複要素は許されない.
Setの最大要素数は2^32−1である.
Redisではsetに対する操作として,交差,並列,差分などがある.
4.ZSet(Sorted Set)タイプ
Zsetはsetのアップグレードバージョンで、setに基づいて順序属性が追加されました.この属性は修正要素を追加するときに指定できます.指定するたびにzsetは指定値を自動的にインストールして順序を再調整します.1枚のテーブル、1列value、1列順序として理解できます.操作中のkeyはzsetの名前として理解される.
Zsetの最大要素数は2^32-1です.
順序付けされたzsetの場合、SORTコマンドを使用して、ASC|DESCパラメータを指定してソートできます.
5.hashタイプ
hashは、リレーショナル・データベース構造に最も近いデータ型であり、データベースのレコードまたはプログラム内のオブジェクトをhashmapに変換してredisに格納できます.
二、jedis操作コマンド:
1.value操作のコマンド
exists(key): key
del(key): key
type(key):
keys(pattern): pattern key
randomkey: key key
rename(oldname, newname): key oldname newname, newname newname key
dbsize: key
expire: key (s)
ttl: key
select(index):
move(key, dbindex): key dbindex
flushdb: key
flushall: key
2.String操作のコマンド
set(key, value): key string value
get(key): key string value
getset(key, value): key string value
mget(key1, key2,…, key N): string( key1,key2…) value s
setnx(key, value): key string, string, key, value
setex(key, time, value): string( key, value) , time
mset(key1, value1, key2, value2,…key N, value N): string , key i string value i
msetnx(key1, value1, key2, value2,…key N, value N): key i string , string, key i value i
incr(key): key string 1
incrby(key, integer): key string integer
decr(key): key string 1
decrby(key, integer): key string integer
append(key, value): key string value
substr(key, start, end): key string value
3.List操作のコマンド
rpush(key, value): key list value
lpush(key, value): key list value
llen(key): key list
lrange(key, start, end): key list start end ( 0 , )
ltrim(key, start, end): key list, start end
lindex(key, index): key list index
lset(key, index, value): key list index value
lrem(key, count, value): count key list value 。count 0, value ,count>0 count value ,count<0 |count| value 。
lpop(key): key list
rpop(key): key list
blpop(key1, key2,… key N, timeout):lpop block 。 timeout 0 , key i list list , 。 timeout>0, , timeout , , key i+1 list pop 。
brpop(key1, key2,… key N, timeout):rpop block 。 。
rpoplpush(srckey, dstkey): srckey list , dstkey list
4.Set操作のコマンド
sadd(key, member): key set member
srem(key, member) : key set member
spop(key) : key set
smove(srckey, dstkey, member) : member srckey dstkey
scard(key) : key set
sismember(key, member) : member key set
sinter(key1, key2,…key N) :
sinterstore(dstkey, key1, key2,…key N) : dstkey
sunion(key1, key2,…key N) :
sunionstore(dstkey, key1, key2,…key N) : dstkey
sdiff(key1, key2,…key N) :
sdiffstore(dstkey, key1, key2,…key N) : dstkey
smembers(key) : key set
srandmember(key) : key set
5.zset(sorted set)操作のコマンド
zadd(key, score, member): key zset member,score 。 , score 。
zrem(key, member) : key zset member
zincrby(key, increment, member) : key zset member, score increment; , score increment
zrank(key, member) : key zset( score ) member rank( index, 0 ), member , “nil”
zrevrank(key, member) : key zset( score ) member rank( index, 0 ), member , “nil”
zrange(key, start, end): key zset( score ) index start end
zrevrange(key, start, end): key zset( score ) index start end
zrangebyscore(key, min, max): key zset score >= min score <= max
zcard(key): key zset
zscore(key, element): key zset element score
zremrangebyrank(key, min, max): key zset rank >= min rank <= max
zremrangebyscore(key, min, max) : key zset score >= min score <= max
zunionstore / zinterstore(dstkeyN, key1,…,keyN, WEIGHTS w1,…wN, AGGREGATE SUM|MIN|MAX): N zset , dstkeyN 。 score, AGGREGATE , WEIGHT 。 WEIGHT, 1。 AGGREGATE SUM, score SUM , MIN MAX , score 。
6.Hash操作のコマンド
hset(key, field, value): key hash fieldvalue
hget(key, field): key hash field value
hmget(key, field1, …,field N): key hash field i value
hmset(key, field1, value1,…,field N, value N): key hash field ivalue i
hincrby(key, field, integer): key hash field value integer
hexists(key, field): key hash field
hdel(key, field): key hash field
hlen(key): key hash
hkeys(key): key hash
hvals(key): key hash value
hgetall(key): key hash (field) value
三、各種データ型に対応する応用シーン
1.Stringタイプの適用シーン
Stringは最もよく使われるデータ型で、普通のkey/value記憶である.
2.listタイプの適用シーン
比較は、リスト・ストレージに適用され、順序が比較的固定されます.たとえば、次のようになります.
省、都市リスト
ブランド、メーカー、車系、車種などのリスト
解体工場のテーマリスト...
3.setタイプの適用シーン
Setが提供する機能はlistと同様で、リストデータを格納する必要があり、重複データが発生したくない場合はsetを選択できます.
4.zset(sorted set)タイプの適用シーン
zsetの使用シーンはsetと類似しており、setは自動的に整列するものではないが、zsetはユーザが優先度(score)のパラメータを追加してメンバーをソートすることができ、整列を挿入する、すなわち自動ソートである.秩序正しく重複しないコレクションリストが必要な場合は、zsetデータ構造を選択できます.例:
PV順の人気車種リスト
時間順のニュースリスト
5.hashタイプの適用シーン
テーブルレコードのようなストレージ
ページビューに必要なデータの格納