后宫佳丽三千,面试官为啥就独宠Redis一个?
在面试的时候,常被问比较下Redis与Memcache的优缺点,个人觉得这二者并不适合一起比较,一个是非关系型数据库不仅可以做缓存还能干其他事情,一个是仅用做缓存。我认为还是Reids牛逼一些,所以在一二线大厂都问的多;那么Redis到底能干什么?又有什么优势,能被这么多面试官集宠爱于一身?
Redis到底能干啥子
我来给大家举几个栗子:
1.排行榜,如果使用传统的关系型数据库来做,非常麻烦,而利用Redis的SortSet数据结构能够非常方便搞定;
2.计算器/限速器,利用Redis中原子性的自增操作,我们可以统计类似用户点赞数、用户访问数等,这类操作如果用MySQL,频繁的读写会带来相当大的压力;限速器比较典型的使用场景是限制某个用户访问某个API的频率,常用的有抢购时,防止用户疯狂点击带来不必要的压力;
3.好友关系,利用集合的一些命令,比如求交集、并集、差集等,可以方便搞定一些共同好友、共同爱好之类的功能;
4.简单消息队列,除了Redis自身的发布/订阅模式,我们也可以利用List来实现一个队列机制,比如到货通知、邮件发送之类的需求,不需要高可靠,但是会带来非常大的DB压力,完全可以用List来完成异步解耦;
5.功能丰富,Redis 内置了 复制(replication),LUA脚本(Lua scripting), LRU驱动事件(LRU eviction),事务(transactions) 和不同级别的 磁盘持久化(persistence), 并通过 Redis哨兵(Sentinel)和自动 分区(Cluster)提供高可用性(high availability)。
上面说了Redis的一些常用的使用场景,接下来我们看一些面试题
(0)redis为什么是key,value的,为什么不是支持SQL的?
(1)redis是多线程还是单线程?
(2)redis的持久化开启了RDB和AOF下重启服务是如何加载的?
(3)redis如果做集群该如何规划?AKF/CAP如何实现和设计?
(4)10万用户一年365天的登录情况如何用redis存储,并快速检索任意时间窗内的活跃用户?
(5)redis的5种Value类型你用过几种,能举例吗?
(6)100万并发4G数据,10万并发400G数据,如何设计Redis存储方式?
(7)Jedis 连接池链接方法有什么优点?
看到这里的你心想:这几道题果真有点难度啊~
原价199元,仅需:0.1元
扫描下方二维码获取特价链接
扫码添加助理,直播授课只需0.1元
购买课程后领取福利:
领取亿级流量实战类电子书;
领取redis课程预习资料
往期web开发高级实战录播获取
参加“Redis”在线直播课程