Redis與memcached相比,一大優勢就是支持更多的數據類型,memcached的value只支持string類型,而redis的value支持五種數據類型。注意啊,key的話都只支持字符串。
其實,Redis更像一個數據結構存儲服務器,裏面的key就相當於我們在程序裏生成一個數據結構時寫的變量名,通過這個key(變量名)來找到這個數據結構,從而使用它,而value自然就相當於這個數據結構了。而Redis支持的數據結構有五種。
String(字符串):
- string是redis最基本的類型,你可以理解成與Memcached一模一樣的類型,一個key對應一個value。
- string類型是二進制安全的。意思是redis的string可以包含任何數據。比如jpg圖片或者序列化的對象 。
- string類型是Redis最基本的數據類型,一個redis中字符串value最多可以是512M
Hash(哈希):
- Redis hash 是一個鍵值對集合。
- Redis hash是一個string類型的field和value的映射表,hash特別適合用於存儲對象。
List(列表):
- Redis 列表是簡單的字符串列表,按照插入順序排序。你可以添加一個元素導列表的頭部(左邊)或者尾部(右邊)。
- 它的底層實際是個鏈表。
Set(集合):
- Redis的Set是string類型的無序集合(集合就說明是無重複的)。它是通過HashTable實現實現的。
zset(sorted set:有序集合):
- Redis zset 和 set 一樣也是string類型元素的集合,且不允許重複的成員。
- 不同的是每個元素都會關聯一個double類型的分數。
- redis正是通過分數來爲集合中的成員進行從小到大的排序。zset的成員是唯一的,但分數(score)卻可以重複。