redis簡介
Redis 與其他 key – value 緩存產品有以下三個特點:
– Redis支持數據的持久化,可以將內存中的數據保存在磁盤中,重啟的時候可以再次加載進行使用。
– Redis不僅僅支持簡單的key-value類型的數據,同時還提供list,set,zset,hash等數據結構的存儲。
– Redis支持數據的備份,即master-slave模式的數據備份。
redis 有哪些用處?
五種用途
1.全頁面緩存
整頁緩存。如果你正在使用服務器端呈現的內容,則不需要為每個單獨的請求重新渲染每個頁面。使用如Redis這樣的緩存,你可以緩存經常請求的內容,從而大大減少請求最多的頁面的延遲,并且大多數框架針對Redis緩存頁面都有hooks。
//?設置全頁面緩存1分鐘 SET?key?"..."?EX?60 //?獲取全頁面 GET?key
2.順序排列
由于Redis在內存中Set數據結構可以非常快速和高效進行遞增和遞減,性能遠遠高于sql查詢。比較這與Redis的排序集相結合意味著你可以以毫秒為單位抓取列表中評分最高的項目,而且實現起來非常容易。
//?向排序集合中添加值 ZADD?sortedSet?1?"one" //?從排序集合中獲取所有值 ZRANGE?sortedSet?0?-1 //?從排序集合中獲取所有值與權重 ZRANGE?sortedSet?0?-1?WITHSCORES
3.會話Session存儲
我所見的Redis最常見的用途是會話存儲。與其他會話存儲(如memcache)不同,Redis可以保留數據,以便在緩存停止的情況下,在重新啟動時,所有數據仍然存在。即便不是需要嚴格持續的任務,此功能仍可以為你的用戶省去大量的麻煩。沒有人會樂于見到他們的會話被無緣無故隨機刪掉。
//?設置一分鐘過期的session SET?randomHash?"{userId}"?EX?60 //?獲取用戶ID GET?randomHash
4.隊列
使用Redis可以做的一個不太常見,但非常有用的事情是排隊。無論是電子郵件隊列還是其他應用程序使用的數據,你都可以在Redis中創建一個高效的隊列。任何熟悉堆棧以及會push和pop項目的開發人員都可以輕松自然地使用此功能。
//?添加消息?? HSET?messages?<id>?<message> ZADD?due?<due_timestamp>?<id> //?接收消息 ZRANGEBYSCORE?due?-inf?<current_timestamp>?LIMIT?0?1?? HGET?messages?<message_id> //?刪除消息 ZREM?due?<message_id> HDEL?messages?<message_id></message_id></message_id></message_id></current_timestamp></id></due_timestamp></message></id>
5.pub/sub
Redis在真實世界的最終用法即我將在這篇文章中提出的pub / sub。這是Redis內置的最強大的功能之一;得到的可能是無限的。你可以創建一個實時聊天系統,在社交網絡上觸發好友請求的通知等等。這個功能是Redis提供的最被低估的功能之一,但功能非常強大,而且使用簡單。
//?向通道中推送消息 PUBLISH?channel?message //?從通道中獲取消息 SUBSCRIBE?channel
結論
我希望你會喜歡這些Redis在真實世界的使用。雖然這篇文章只抓住了Redis能為你做的事情的表面,但是我希望你能從中獲得應如何充分利用Redis的啟發。