Redis支持五種資料型別:string(字串),hash(哈希),list(串列),set(集合)及zset(sorted set:有序集合),
String(字串)
string 是 redis 最基本的型別,你可以理解成與 Memcached 一模一樣的型別,一個 key 對應一個 value,
string 型別是二進制安全的,意思是 redis 的 string 可以包含任何資料,比如jpg圖片或者序列化的物件,
string 型別是 Redis 最基本的資料型別,string 型別的值最大能存盤 512MB,
常用命令:set、get、decr、incr、mget等,
注意:一個鍵最大能存盤512MB,
Hash(哈希)
Redis hash 是一個鍵值(key=>value)對集合;是一個 string 型別的 field 和 value 的映射表,hash 特別適合用于存盤物件,
每個 hash 可以存盤 232 -1 鍵值對(40多億),
常用命令:hget、hset、hgetall等,
應用場景:存盤一些結構化的資料,比如用戶的昵稱、年齡、性別、積分等,存盤一個用戶資訊物件資料,
List(串列)
Redis 串列是簡單的字串串列,按照插入順序排序,你可以添加一個元素到串列的頭部(左邊)或者尾部(右邊),
list型別經常會被用于訊息佇列的服務,以完成多程式之間的訊息交換,
常用命令:lpush、rpush、lpop、rpop、lrange等,
串列最多可存盤 232 - 1 元素 (4294967295, 每個串列可存盤40多億),
Set(集合)
Redis的Set是string型別的無序集合,和串列一樣,在執行插入和洗掉和判斷是否存在某元素時,效率是很高的,集合最大的優勢在于可以進行交集并集差集操作,Set可包含的最大元素數量是4294967295,
集合是通過哈希表實作的,所以添加,洗掉,查找的復雜度都是O(1),
應用場景:
1、利用交集求共同好友,
2、利用唯一性,可以統計訪問網站的所有獨立IP,
3、好友推薦的時候根據tag求交集,大于某個threshold(臨界值的)就可以推薦,
常用命令:sadd、spop、smembers、sunion等,
集合中最大的成員數為 232 - 1(4294967295, 每個集合可存盤40多億個成員),
zset(sorted set:有序集合)
Redis zset 和 set 一樣也是string型別元素的集合,且不允許重復的成員,
不同的是每個元素都會關聯一個double型別的分數,redis正是通過分數來為集合中的成員進行從小到大的排序,
zset的成員是唯一的,但分數(score)卻可以重復,
sorted set是插入有序的,即自動排序,
常用命令:zadd、zrange、zrem、zcard等,
當你需要一個有序的并且不重復的集合串列時,那么可以選擇sorted set資料結構,
應用舉例:
(1)例如存盤全班同學的成績,其集合value可以是同學的學號,而score就可以是成績,
(2)排行榜應用,根據得分列出topN的用戶等,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/95129.html
標籤:PHP
