簡介
最近作爲面試官面試了幾個2-5年的PHP工程師,在問到Redis的使用場景時,基本上只能回答出來緩存,讓我這個1年經驗的PHP有點詫異。
使用場景
redis的基礎數據結構有五種: string
丶list
丶hash
丶set
丶zset
, 可存儲的數據還是比較豐富的。
- 緩存,這是衆所周知的,緩存數據庫查詢結果,可減輕數據庫壓力。
- 限流,基於Redis的數據結構zset實現或基於Redis的setnx的操作或基於Redis的令牌桶算法。
- 消息隊列, list可模擬隊列丶棧操作。
LPUSH
丶LPOP
丶RPUSH
丶RPOP
。 - 記錄文章的點贊數丶閱讀數等,定時保存到數據庫,可減輕數據庫壓力。
- 保存用戶歷史行爲,過濾用戶惡意行爲。
- 記錄排行榜信息。
- 過濾器/布隆過濾器,在爬蟲中可使用redis進行url去重。
- 位圖操作。
- 模糊計數。
- 分佈式鎖。