一、
1)value其實不僅可以是String,也可以是數字。
常規key-value緩存應用; 常規計數:微博數,粉絲數等。
2)hash特別適合用於存儲對象。
可以使你像在數據庫中 Update 一個屬性一樣只修改某一項屬性值。
3)list list就是鏈表,
比如微博的關注列表,粉絲列表,做分頁
Redis list的實現為一個雙向鏈表,即可以支持反向查找和遍歷
4)set特殊之處在於set是可以自動排重的。
5)Sortedset 使得集合中的元素能夠按score進行有序排列。
直播時排行信息包含直播間在線用戶列表,
各種禮物排行榜
二、
緩存穿透:一般的緩存系統,都是按照key去緩存查詢,
如果不存在對應的value,就應該去后端系統查找
如果key對應的value是一定不存在的,並且對該key並發請求量很大,
就會對后端系統造成很大的壓力。這就叫做緩存穿透
解決方案:將一定存在的key或者一定不存在的key 放入一個大的數據查詢的地方 然后查詢時可以起到過濾效果
緩存雪崩:就是當重啟服務器或者大量緩存數據集中在某個節點失效 會對后端產生很大壓力
解決方案:添加節點 盡量錯開緩存時間
三、redis的aof和rdb的區別.
RDB方式是通過快照方式完成的 持久化
定時生成 RDB 快照非常便於進行數據庫備份 建議使用 為了安全兩種都要使用
RDB 是一個非常緊湊(compact)的文件,它保存了 Redis 在某個時間點上的數據集
AOF持久化以日志的形式記錄服務器所處理的每一個寫、刪除操作,查詢操作不會記錄,以文本的方式記錄,可以打開文件看到詳細的操作記錄。
對於相同數量的數據集而言,AOF文件通常要大於RDB文件。RDB 在恢復大數據集時的速度比 AOF 的恢復速度要快。