上篇文章中簡單的介紹和總結了一下字符串類型的key的相關操做命令以及其適用場景,今天接着上篇文章的內容講解redis其餘的數據類型的相關指令以及其對應的使用場景。redis
列表用來存儲有序的元素,(這裏的有序指加入列表的順序),redis 支持對列表2端進行插入和彈出,還能夠獲取指定範圍,指定下標的元素。
複製代碼
這裏簡單的介紹列表的幾種操做指令:異步
將一個或多個值 value 插入到列表 key 的表尾(最右邊)。
若是有多個 value 值,那麼各個 value 值按從左到右的順序依次插入到表尾.
若是 key 不存在,一個空列表會被建立並執行 RPUSH 操做。
複製代碼
異步隊列:該指令能夠和`LPOP` 指令結合起來構成異步隊列. 固然與之對應的還有指令`LPUSH` 和`RPOP`。固然結合`BLPOP`等相關指令能夠實現
帶阻塞功能的異步隊列.
複製代碼
返回列表 key 中指定區間內的元素,區間以偏移量 start 和 stop 指定。
下標(index)參數 start 和 stop 都以 0 爲底,也就是說,以 0 表示列表的第一個元素,以 1 表示列表的第二個元素,以此類推。
你也可使用負數下標,以 -1 表示列表的最後一個元素, -2 表示列表的倒數第二個元素,以此類推。
複製代碼
分頁: 藉助於lrange的功能,咱們能夠實現分頁功能。
複製代碼
集合類型一個重要的特色是集合中不容許有重複元素,固然集合中的元素是無序的(這裏的順序指的也是加入集合時元素的順序)。
集合提供了不少有用的指令,好比判斷某個元素是否存在的`SISMEMBER` ,返回指的集合的基數(元素個數)`SCARD` ,以及多個集合取差集,並集等等相關指令。
複製代碼
統計和查找: 藉助集合的去重特性以及SCARD,SISMEMBER 指令,能夠考慮用集合來進行統計和查找功能。
隨機數:藉助`SRANDMEMBER`和`spop` 指令返回集合中的隨機數,好比年會抽獎的時候就能夠用這個生成簡單的隨機數
複製代碼
有序集合相比普通集合而言,這個有序體如今每一個元素的score 上,這個有序和列表的有序是不同的,列表強調的是元素添加時的順序,有序集合是按照元素的score值進行排序的。有不少頗有用的指令:如`ZRANGEBYSCORE`返回特定範圍內的元素。
複製代碼
適用場景:spa
統計topN 的場景:
簡單限流:經過zremrangebyscore 移除特定的元素,以及ZCARD 統計元素的數量,構造一個簡單的滑動窗口(好比10秒內),實現限流
複製代碼
本文只是簡單的闡述了一下redis的部分 數據類型以及一些可用的場景,固然我的理解可能不必定徹底正確。後面的文章中會結合其餘的問題繼續分享redis的其餘特性。code