1、常用命令
set key value [ex] [px] (setex aa 10 test)
getmset(批量設定)
mget
incr key
decr
incrby key increment 增多少
decrby
incrbyfloat 浮點數增加
2、 內部編碼
int:8個位元組的長整型
embstr:小於等於39個位元組的字串
raw:大於39個位元組的字串
object encording key 檢視編碼型別
3、 使用場景:快取、技術、共享session、限速等
1、常用命令
hsetnx
hget key field
hdel key field
hlen key 計算field個數
hmset key field value [field value ...] 批量設定
hmget key field [field ...] 批量獲取
hexists key field 判斷field是否存在
hkeys key 獲取所有field
hvals key 獲取所有值
hgetall 獲取所有field - value
hincrby key 將field自增
hincrbyfloat key
hstrlen key field 查詢value的字串長度【redis3.2】
在使用hgetall時,如果雜湊元素個數比較多,會存在阻塞redis的可能。
若只需獲取部分field,可使用hmget命令。
若獲取全部,可使用hscan命令。
2、內部編碼
ziplist 壓縮節省記憶體
hashtable ziplist不滿足時使用
3、對比hash和string
優勢:比通過序列化資料快取,hash更直觀。
減少序列化和反序列化的開銷。
序列化儲存需要做寫入的併發保護。(寫入和獲取是有可能丟失或者生成髒資料)
劣勢:要控制hash在ziplist和hashtable轉換,因為hashtable需要更多記憶體。
三、list(列表)
列表:有序,可以通過索引獲取下標元素,或某個範圍的元素。
可重複:與set和sorted set不同的地方
可充當棧和佇列的角色。
1、常用命令
新增:rpush key value [value ..] 從右邊插入元素
lpush
linsert key before|after prove value 找到prove元素,在其前面或者後面插入value
查詢:lrange key start end 獲取指定範圍內元素列表
lindex key index 獲取列表指定索引下標的元素
llen key 獲取列表長度
刪除:lpop key 從列表左側彈出元素
rpop
lrem key count value 刪除指定元素
count > 0 :從做到右,刪除最多count個元素
count < 0 :從右到左,刪除最多count絕對值個元素
count = 0 : 刪除所有
ltrim key start end 按照索引範圍裁剪列表、
修改:lset key index newvalue 修改指定下標元素
阻塞操作:
blpop key [key ...] timeout (非同步訊息佇列消費可以通過這個獲取資料)
brpop key [key ...] timeout
lpop 和rpop的阻塞版本,timeout為阻塞時間(秒)
列表為空:
若timeout = 3,那麼客戶端等到3秒後返回
若timeout = 0,那麼客戶端會一直阻塞下去。直到有元素進入列表
列表不為空:客戶端會立即返回。
注意:如果有多個鍵,那麼brpop會從左到右遍歷鍵,一旦有乙個能彈出元素,客戶端立即返回。
如果有過個客戶端對同乙個鍵執行brpop,最先執行brpop命令的客戶端可以獲取到彈出的元素。
2、內部編碼:
ziplist壓縮列表
linkedlist 鍊錶
3、應用場景
不允許有重複元素
無序無法通過索引下標獲取元素
集合內的增刪改查
多個集合的交集並集差集
1、常用命令
sadd key element [element ...]
srem
scard key 計算元素個數 0(1)
sismember key element 判讀元素是否在集合中。在1,不在0
srandmember key [count] 隨機從集合返回指定個數元素
spop key 從集合隨機彈出元素
smember key 獲取所有元素
集合間的操作:
sinter key [key] 交集
sunion 並集
sdiff 差集
sinterstore destination key [key ...] 將交集的結果保持
sunionstore destination key [key ...] 將並集的結果保持
sdiffstore destination key [key ...] 將差集的結果保持
2、內部編碼
intset整數集合(元素個數預設512)
hashtable
3、內部編碼
標籤、生成隨機數,比如**(spop、srandmember)、社交需求
不可重複性
可排序:通過給每個元素設定乙個分數(score)
1、常用命令
zadd key score member [score member ...] 新增成員
zcard key 計算成員個數 o(1)
zscore key member 計算成員分數
zrank key member 從低到高返回排名
zrevrank key member 從高到低返回排名
zrem key member [member ...] 刪除成員
zincrby key increment member 增加成員的分數
zrange key start end [withscores] 返回指定排名範圍的成員
zrevrange
withscore 選項,同時返回成員的分數
zrangebyscore key min max [withscores] [limit offset count]返回指定分數範圍的成員
zrevrangebyscore
2、應用場景
排行榜系統等。
redis五種基本資料型別
對redis來說,所有的key 鍵 都是字串。是redis中最基本的資料型別,乙個key對應乙個value。string型別是二進位制安全的,意思是 redis 的 string 可以包含任何資料。如數字,字串,jpg或者序列化的物件。使用 get set del incr decr 等 127.0...
redis五種基本資料型別
redis中所有的key的型別都是字串 常用操作 新增乙個key set key1 value1 新增乙個key,並設定自動過期時間 set name1 jack1 ex 3 批量設定多個key mset key1 value1 key2 value2 獲取乙個key的值 get key1 獲取ke...
Redis 五個基本資料型別
1.string型別 字串型別 string 是redis中最基本的型別。redis中的string 型別是二進位制安全的,也就是說在redis中string型別可以包含各種資料,比如一張jpeg或者是乙個序列化的ruby物件。乙個string型別的值最大長度可以是512m。在redis中strin...