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