简介
最近作为面试官面试了几个2-5年的PHP工程师,在问到Redis的使用场景时,基本上只能回答出来缓存,让我这个1年经验的PHP有点诧异。
使用场景
redis的基础数据结构有五种: string
丶list
丶hash
丶set
丶zset
, 可存储的数据还是比较丰富的。
- 缓存,这是众所周知的,缓存数据库查询结果,可减轻数据库压力。
- 限流,基于Redis的数据结构zset实现或基于Redis的setnx的操作或基于Redis的令牌桶算法。
- 消息队列, list可模拟队列丶栈操作。
LPUSH
丶LPOP
丶RPUSH
丶RPOP
。 - 记录文章的点赞数丶阅读数等,定时保存到数据库,可减轻数据库压力。
- 保存用户历史行为,过滤用户恶意行为。
- 记录排行榜信息。
- 过滤器/布隆过滤器,在爬虫中可使用redis进行url去重。
- 位图操作。
- 模糊计数。
- 分布式锁。