Redis五种数据结构
對redis來說,所有的key(鍵)都是字符串,所謂的5種數據結構是指針對value而言
1、Redis五種數據結構如下:
| String字符串類型 | 1、redis中最基本的數據類型,一個key對應一個value。 2、是二進制安全的,意思是 redis 的 string 可以包含任何數據。如數字,字符串,jpg圖片或者序列化的對象。 | 1.緩存: 經典使用場景,把常用信息,字符串,圖片或者視頻等信息放到redis中,redis作為緩存層,mysql做持久化層,降低mysql的讀寫壓力。 2.計數器:redis是單線程模型,一個命令執行完才會執行下一個,同時數據可以一步落地到其他的數據源。 3.session:常見方案spring session + redis實現session共享, | get 、 set 、 del 、 incr、 decr | ? |
| HashTables (哈希) | 是一個Mapmap,指值本身又是一種鍵值對結構,如 value={{field1,value1},......fieldN,valueN}} | 1.緩存: 能直觀,相比string更節省空間的維護緩存信息,如用戶信息,視頻信息等。 | 所有hash的命令都是h開頭的: hget? 、hset 、? hdel 等 | ? |
| LinkedLists(鏈表) | List 說白了就是鏈表(redis 使用雙端鏈表實現的 List),是有序的,value可以重復,可以通過下標取出對應的value值,左右兩邊都能進行插入和刪除數據。 | 1.timeline:例如微博的時間軸,有人發布微博,用lpush加入時間軸,展示新的列表信息。 | 使用列表的技巧
| ? |
| Sets(集合) | 用來保存多個字符串的元素,但和列表不同的是集合中 1. 不允許有重復的元素 2.集合中的元素是無序的,不能通過索引下標獲取元素 3.支持集合間的操作,可以取多個集合取交集、并集、差集。 | 1.標簽(tag),給用戶添加標簽,或者用戶給消息添加標簽,這樣有同一標簽或者類似標簽的可以給推薦關注的事或者關注的人。 2.點贊,或點踩,收藏等,可以放到set中實現 | 命令都是以s開頭的: sset 、srem、scard、smembers、sismember | 1、set類型的應用場景 —— Redis實戰經驗 |
| Zset? 有序集合 | 1.Redis 有序集合和集合一樣也是string類型元素的集合,且不允許重復的成員。 2.不同的是每個元素都會關聯一個double類型的分數。redis正是通過分數來為集合中的成員進行從小到大的排序。 3.有序集合的成員是唯一的,但分數(score)卻可以重復。 | 1.排行榜:有序集合經典使用場景。例如小說視頻等網站需要對用戶上傳的小說視頻做排行榜,榜單可以按照用戶關注數,更新時間,字數等打分,做排行。 | 有序集合的命令都是 以? z? 開頭: zadd 、 zrange、 zscore | 1、Redis 有序集合(sorted set) 2、使用Redis有序集合實現投票排行榜系統 |
總結
以上是生活随笔為你收集整理的Redis五种数据结构的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Jmeter分布式部署如何操作
- 下一篇: Redis -基础命令