redis深さ冒険(一):基礎データ構造
3077 ワード
Reidsインフラストラクチャ
Stringタイプ
// name key codehole value
/** */
set name codehole // key value
get name // key value
exists name //key
del name // key
/** */
mset name1 boy name2 girl name3 unknown //
mget name1 name2 name3 //
/** set */
set name codehole
get name
expire name 5 //5s
setex name 5 codehole //5s , set + expire
setnx name codehole // name set
/** */
set age 30 //
incr age //age 1
incr by age 5 //age 5
List(リスト)
/** : */
rpush books python java golang # python java golang books
llen books # books
lpop books #
/** : */
rpush books python java golang #
rpop books #
/** */
rpush books python java golang
lindex books 1 # O(n),
lrange books 0 -1 # O(n)
ltrim books 1 -1 # (-2 ), 。
ltrim books 1 0 # ,
llen books #
Hash(辞書)
hset books java "think in java" # hash books key-value
hgetall books # books ,key value
hlen books #hash books
hget books java # hash books java value
hset books golang "learning go programming" # book key golang value
hmset books java "effective java" python "learning python" golang "modern golang programming" # set
# ,hash key , hincrby, incr,
hincrby user-laoqian age 1
セット
Redisの集合はjava中のHashSetに相当し,その内部のキー値対は無秩序で一意である.その内部実装は特殊な辞書に相当し、辞書のすべてのvalueは値NULLである.
sadd books python # set books python
sadd books python # key ,
sadd books java golang # set books
smembers books # set books key 。 , set
sismember books java # value (1: ,0: )
scard books # books
spop books #
Zet(整列集合)
zsetはRedisが提供する最も特色のあるデータ構造であり、面接で面接官が最もよく聞くデータ構造でもある.JavaのSortedSetとHashMapの結合体に似ています.setで内部valueの一意性を保証する一方で、各valueにscoreを付与し、このvalueのソートの重みを表すことができます.
zadd books 9.0 "think in java" # zset books score 9.0 value:"think in java"
zrange books 0 -1 # socore ( ) value( )
zrevrange books 0 -1 # score ( )
zcard books # zset books value count()
zscore books "java concurrency" # books value "java concurrency" score
zrank books "java concurrency" # value "java concurrency" score( : ) ( 0)
zrangebyscore books 0 8.91 # score ( score 0 8.91 value)
zrangebyscore books -inf 8.91 withscores # socre (-∞,8.91] value, scores
zrem books "java concurrency" # value "java concurrency"
コンテナ型データ構造の汎用規則
List/set/hash/zsetの4つのデータ構造はコンテナ型データ構造であり、次の2つの共通ルールを共有しています.
ps:最近お金の「redis深さ冒険」を勉強していますが、これは勉強ノートですね.