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