Redis-第8章-シーンの適用
3085 ワード
目次
1、概要
Redisは、String(文字列)、Hash(ハッシュ)、List(リスト)、Set(集合)、Zset(秩序集合)の5つのデータ型をサポートします.
2、詳しく
1、String(文字列)
定義:Stringはredisの最も基本的なタイプで、1つのkeyは1つのvalueに対応します.Stringタイプはバイナリで安全です.string下位層の実装は単純な動的文字列sdsであるため、文字列を修正することができる.
適用シーン:単一キャッシュ、オブジェクトキャッシュ、分散ロック、通常カウント(ファン数、コメント数)、分散セッション共有、分散グローバルシーケンス番号.
具体的な実装:
:
set key value
get key
:
set user:1 value(json )
mset user:1:name tsingli user:1:balance 1888
mget user:1:name user:1:balance
:
incr article:readcount:{ id}
get article:readcount:{ id}
:
incrby orderid 1000 # redis
:
#
1: setnx product:1001 true # 1
2: setnx product:1001 true # 0
。。。
del product:1001 #
set product:1001 true ex 10 nx #
#
setnx product:1001 true
1. 1001
2.
3.
del product:1001
setnx挿入したkeyのようにデータに操作がない場合、2回目に在庫を減算するとエラーが返されます.
2、Hash(ハッシュ)
定義:Hashはキー値ペアの集合です.彼はjavaの二重mapに相当する.>.適用シーン:カート.具体的な実装:
:
# :
# id 1001, 10088。
# id key, id field, value。
# :
# :
hset cart:1001 10088 1
# :
hincrby cart:1001 10088 1
# :
hlen cart:1001
# :
hdel cart:1001 10088
# :
hgetall cart:1001
3、List(リスト)
定義:リストは単純な文字列リストで、挿入順にソートされ、リストのヘッダーまたは末尾に要素を追加できます.適用シーン:
Stack( )= LPUSH + LPOP -> FILO //
、Queue( )= LPUSH + RPOP //
、Blocking MQ( )= LPUSH + BRPOP //
、
、
.具体的な実装: :
# , id 10018
lpush msg:111111 10018
# , id 10086
lpush msg:111111 10086
#
lrange msg:11111 0 5 //0 5 。
4、Set(集合)
定義:Setはstringタイプの無秩序な集合です.応用シーン:微信抽選ウィジェット、
、 、
、注目モデルは、認識可能な人の関係である.具体的な実装: :
#
sadd key {userId}
#
smembers key
# count (1) // srandmember
srandmember key [count] // srandmember act:1008 2
# count (2) // SPOP
spop key 2
、 、 :
#
sadd like:{ ID} { id}
#
srem like:{ ID} { id}
#
sismember like:{ ID} { id}
#
smembers like:{ ID}
#
scard like:{ ID}
5、Zset(秩序集合)
定義:zsetはsetと同様にstringタイプ要素の集合であり、重複するメンバーは許可されません.異なるのは、各要素にdobuleタイプのスコアが関連付けられていることです.redisは、スコアによって集合メンバーを小さいものから大きいものにソートし、zsetのメンバーは一意ですが、スコアは繰り返します.