hash
其內(nèi)部結(jié)構(gòu)符合對(duì)象形式
>hset key field value
hset user:1 username petter
hset user:1 age 12
?
獲取所有參數(shù)與結(jié)果
127.0.0.1:6379> hgetall user:1
1) "username"
2) "petter"
3) "age"
4) "13"
?
獲取所有key
127.0.0.1:6379> hkeys user:1
1) "username"
2) "age"
獲取所有值
127.0.0.1:6379> hvals user:1
1) "petter"
2) "13"</pre>
命令 | 復(fù)雜度 |
---|---|
hget hset hdel | o(1) |
hexists | o(1) |
hincrby | o(1) |
hgetall hvals hkeys | o(n) |
hmget hmset | o(n) |
list
是一種有序可重復(fù)結(jié)構(gòu)鏈表
增
rpush 從右側(cè)插入 rpush key value1...value n
lpush 從左側(cè)插入 lpush key value1...value n
>127.0.0.1:6379> rpush number a b c
(integer) 3
127.0.0.1:6379> lrange number 0 -1
1) "a"
2) "b"
3) "c"
?
?
127.0.0.1:6379> lpush number1 a b c
(integer) 3
127.0.0.1:6379> lrange number1 0 -1
1) "c"
2) "b"
3) "a"</pre>
linsert key before/after value newvalue 在一個(gè)值前/后插入新值
linsert number before a java 在a前面插入java
lpush rpush 左彈出值 右彈出值
刪
刪除:lrem lrem key count value 刪除在這個(gè)key列表中的值 (count 多少個(gè)相同的)
count=0 刪除所有 值是value的
count>0 從左往右刪除
count<0 從右往左刪除
保留部分: ltrim key start end 按照索引要求修改列表 (保留 i -> j 位范圍內(nèi)的值)
ltrim number 1 2
a b c 中 a被去除 保留 b c
此功能用于大型redis列表刪除性能優(yōu)秀
改
lset key index newValue 設(shè)置列表指定索引值為newValue o(n)
查
lrange key start end (包含end) 獲取列表指定索引范圍內(nèi)所有的item
>lrange number 0 1
a b
查詢范圍當(dāng)結(jié)尾
lrange number 1 -1
b c
lindex key index 查詢對(duì)應(yīng)數(shù)值 o(n)
llen 查詢長度 o(1)
使用范圍
功能用于時(shí)間軸 更新微博直接置頂顯示
set
無序不可重復(fù)的數(shù)據(jù)結(jié)構(gòu)
增
sadd key element 向集合key中添加element (如果element存在則添加失敗) o(1)
刪
srem key element 將集合key中的element移除 o(1)
查
smembers 小心使用 顯示所有時(shí)會(huì)造成阻塞并且顯示結(jié)果無序
sdiff 差集 sinter 交集 sunion 并集
sdiff number:1 number:2 store destkey 將交集結(jié)果保存在destkey中
用途
抽獎(jiǎng)系統(tǒng) 獲取 然后隨機(jī)彈出 spop
共同關(guān)注 集合間操作
zset
有序集合:具有分?jǐn)?shù)可以排序。
增
zadd key score element (可以是多對(duì))o(logN)
zincrby key increScore element
>zincrby user:1 9 age 年齡增加九歲
刪
zrem key element (可以是多個(gè))
zremrangebyrank key start end 刪除指定排名內(nèi)的升序元素
zremrangebyscore key minScore maxScore 刪除指定分?jǐn)?shù)內(nèi)的升序元素
查
zscore key element 返回元素的分?jǐn)?shù)
zcard key 返回元素個(gè)數(shù)
zrange key start end [withscores] 返回指定索引范圍內(nèi)的升序元素[分值]
zrangebyscore key minScore maxScore [withscores] 返回指定分?jǐn)?shù)范圍內(nèi)的升序元素[分值]
zcount key minScore maxScore 返回有序集合內(nèi)在指定分?jǐn)?shù)范圍內(nèi)的個(gè)數(shù)
用于排行榜