redis和memcached兩種緩衝,個人覺得redis更好用,因為它不僅提供了豐富的資料類型,還能保證資料的持久性,下面就來簡單的介紹一下redis中常用的幾種資料類型。
1. 字串類型(string)
這是redis中最基本的類型,也是最常用的類型,跟memcached一樣,即一個key對應一個值這種。操作也很簡單,常用操作命令有get、set、del等。
2. 鏈表類型(list)
鏈表類型有點類似於程式設計語言中的數組一樣,可以用一個key存一組資料進去。其實list類型就是一個雙向鏈表,通過lpush、lpop、rpush、rpop這四個命令來向鏈表的頭部插入、移除、尾部插入、移除,這使得list即可以用作棧,也可以用作隊列。如下圖所示的情景:
redis中list隊列
3. 無序集合類型(set)
redis中的set是string類型的無序集合,set元素最大可以包含2的32次方-1個元素。利用set集合類型,我們可以快速取出n個key之間的並集、交集、差集等,從而輕鬆解決mysql等資料庫不容易實現這種運算的缺陷。應用情境:取出兩個QQ號中的共同的好友數。
4. 有序集合類型(sorted set)
和set一樣,sorted set也是string類型元素的集合,是一個沒有重複元素的字串集合。因為元素是有序的,所以使用有序集合你可以以非常快的速度(O(log(N)))添加,刪除和更新元素,它也很擅長排序。應用情境:擷取所有使用者投票數最高的前10名,等等。
5. 雜湊類型(hash)
hash資料類型儲存的資料與mysql資料庫中儲存一條記錄極為相似,其儲存了欄位和欄位值的映射,但欄位值只能是字串,不支援其他類型。每一個雜湊可以儲存超過2的32次方-1個欄位-值對。應用情境:儲存使用者的基本資料,等等。
總結:只有熟練掌握redis各種資料類型的特點之後,才能更好的應用到實際項目中。雖然redis的效率非常高,但是我們還是得非常清楚的理解每種資料類型適合的應用情境,這樣才能將redis的優勢發揮到極致