目錄
- 1.通用命令
- 2.數(shù)據(jù)結(jié)構(gòu)和內(nèi)部編碼
- 3.單線程
- 4.string
- 5.hash
- 6.list
- 7.set和zset
1忱嘹、通用命令(更多命令可以查看http://doc.redisfans.com/)
keys (一般不在生產(chǎn)環(huán)境使用 因?yàn)槭荗n优质,并且生產(chǎn)key比較多所以不在生產(chǎn)環(huán)境使用)
dbsize 計(jì)算key的總數(shù)
exists key 檢查key是否存在
del key [key …] 刪除指定的key-value
expire key seconds key在多少秒后過(guò)期
ttl key 查看key剩余的過(guò)期時(shí)間
persist key 去掉key的過(guò)期時(shí)間
type key 返回key的類型
image.png
2吧彪、數(shù)據(jù)結(jié)構(gòu)和內(nèi)部編碼
image.png
3烤黍、單線程架構(gòu)
- 純內(nèi)存 (主要)
- 2、非阻塞IO
- 3桶略、避免線程切換和競(jìng)態(tài)消耗
注意:
1想暗、一次只運(yùn)行一條命令
2、拒絕長(zhǎng)(慢)命令
keys, flushall, flushdb, slow lua scrpit, mutil/exec, operte big value(collection)
4栅炒、掂摔、字符串String
image.png
場(chǎng)景:緩存、計(jì)數(shù)器赢赊、分布式鎖等等
命令:
get乙漓、set、del
get key #獲取key對(duì)應(yīng)的value
set key value #設(shè)置key-value
del key #刪除key-value
incr释移、decr叭披、incrby、decrby
incr key #key自增1玩讳,如果key不存在涩蜘,自增后get(key)=1
decy key #key自減1,如果key不存在熏纯,自減后get(key)=1
incrby key k #key自增k同诫,如果key不存在,自增后get(key)=k
decrby key k #key自減k樟澜,如果key不存在误窖,自減后get(key)=k
set、setnx秩贰、set xx
set key value #不管key是否存在霹俺,都設(shè)置
setnx key value #key不存在,才設(shè)置
set key value xx #key存在才設(shè)置
mget萍膛、mset
mget key1 key2 key3… #批量獲取key吭服,原子操作
mset key1 key2 value1 value2 … #批量設(shè)置key-value
getset、append蝗罗、strlen
getset key newvalue #set key newvalue并返回舊的value
append key value #將value追加到舊的value
strlen key #返回字符串的長(zhǎng)度(注意中文)
incrbyfloat艇棕、getrange、setrange
incrbyfloat key 3.5 #增加key對(duì)應(yīng)的值3.5
getrange key start end #獲取字符串指定下標(biāo)所有的值
setrange key index value #設(shè)置字符串指定下標(biāo)所有對(duì)應(yīng)的值
image.png
image.png
5串塑、hash
命令:
hget沼琉、hset、hdel
hget key field #獲取hash key對(duì)應(yīng)field的value
hset key field value #設(shè)置hash key對(duì)應(yīng)field的value
hdel key field #刪除hash key對(duì)應(yīng)field的value
hexists桩匪、hlen
hexists key field #判斷hash key是否有field
hlen key field #獲取hash key field的數(shù)量
hmget打瘪、hmset
hmget key field1 field2… #批量獲取hash key的一批field對(duì)應(yīng)的值
hmset key field1 value1 field2 value… #批量設(shè)置hash key的一批field value