類型
string
key 1024 字節
val 512 兆
命令:
set k v
getset k v 先獲取再設置值
del k
incr k 不存在k 會先創建k 再默認0遞增1爲 1
decr k 不存在k 會先創建k 再默認0遞減1爲 -1
incrby k v 在k的v基礎上增加v
decrby k v 在k的v基礎上減少v
append k v 在k的v後面追加一個v 返回v的長度
hash
每個hash可以存儲 4294967295 個鍵值對
命令
hset key k v
hmset key k v v ... 設置多個屬性值
hmget key k k 獲取多個屬性值
hgetall key 全部獲取到
hdel key k v 刪除單個屬性值
del key 可以刪除整個集合
hincrby key k v 給v在v基礎遞增v
hexists key k 檢測是否存在屬性值 1/0
hlen key 長度
hkeys key 返回key以下所有的 k
hvals key 返回key以下所有的 v
list
命令
lpush key v v v ... 從左添加
lpushx key v 從左頭部插入一個元素 如果key不存在則插入失敗(類似插隊)
lpop key 從左彈出
rpush key v v v ... 從右添加
rpushx key v 從右頭部插入一個元素 如果key不存在則插入失敗(類似插隊)
rpop key 從右彈出
lrange key start(0) end (-1最後一個|-2倒數第二個...) 查看列表範圍
llen key 查看元素個數
lrem key count v 依次移除 count 個 v
lrem key -count v 依次移除 count 個 v
lrem key 0 v 依次移除 所有的 v
lset key count v 第count(角標)個位置插入v (插隊)
linsert key before vv v 依次且只在的第一個vv之前插入v (插隊)
linsert key after vv v 依次且只在的第一個vv之後插入v (插隊)
rpoplpush key1 key2 依次將 key1 右邊的第一個彈出 然後將彈出的元素插入到 key2 的左邊
tips:由於業務場景中在出現業務高峯的時候運用隊列處理時 彈出的元素沒有處理成功 這樣就造成了彈出元素的業務丟失 爲此爲了解決該類問題 可以用 rpoplpush 來解決這個問題(舉例:listA 爲主業務隊列, listB 爲副業務隊列 當listA被消費者彈出一個元素時 隨即將元素添加到listB隊列 等待業務處理完成時 即可將listB的元素刪除 相當於做了一個備份的操作)
set
set可包含的最大元素數量是 4294967295
可以看做沒有排序的集合 和 list 一樣(set中不允許出現重複的元素 如果多次出現 只會保留一份內容)
命令
sadd key v v v ... 添加元素
srem key v v v ... 刪除元素
smembers key 查看元素
sismember key v 查看 v 是否存在 (1/0)
sdiff key1 key2 返回 key1 與 key2 的差集
sinter key1 key2 返回 key1 與 key2 的交集
sunion key1 key2 返回 key1 與 key2 的並集(重複的會去掉)
scard key 返回 key 下的數量
srandmember key 返回 key 中隨機的一個元素
sdiffstore key1 key2 key3 將 key2 與 key3 的差集存儲到 key1
sinterstore key1 key2 key3 將 key2 與 key3 的交集存儲到 key1
sunionstore key1 key2 key3 將 key2 與 key3 的並集存儲到 key1
tips:應用場景例如兩件商品同時購買過的用戶有哪些 網站訪問的ip有多少個...
sorted-set
sorted-set 與 set 之間的區別:都會有一個分數與之關聯 redis正是通過這個分數爲集合從小到大的排序 雖然值是唯一的 但是分數是可以重複的
命令
zadd key num v num v ... 給key鍵添加 num分數 到v(可以是多個 如果num重複 成功返回0 會修改爲本次的num)
zscore key v 返回key下 v 的分數
zcard key 返回key下的長度
zrem key v v 刪除key下的v
zrange key 0 -1 返回key下第一個到最後一個的v
zrange key 0 -1 withscores 返回key下第一個到最後一個的v與v對應的分數
zrevrange key 0 -1 withscores 以分數從大到小返回key的v 與 v對應的分數
zremrangebyrank key start end 以分數從大到小 有序的 從 start 到 end 之間刪除
zremrangebyscore key startnum endnum 刪除key下分數 從 startnum 到 endnum 之間的 v
zrangebyscore key startnum endnum limit start end 以分數從大到小 返回startnum 到 endnum 分數區間 的第 start 到 end結束
zincrby key num v 給 key 的 v 在 v 的基礎上增加 num
zcount key startnum endnum 返回 key 下分數在 startnum 到 endnum 之間的個數
tips:主要的應用場景在於遊戲的排名、微博的熱點話題、遊戲的積分... ...