Redis在面试的时候,被问到的频率还是非常高的,应该是一个必备的知识点
简单介绍?
免费高性能的非关系型的内存数据库。
存储形式为key-value。
value支持4种格式,分别为String、set、list、map。其中String和map常用,其中map最常用。
作为后台开发人员理应掌握redis和MongoDB的使用。
它的出现解决什么问题?
- 做缓存
- 缓存提高请求响应速度、减少对数据库频繁操作。
比如,用户对应菜单、用户对应的购物车内容、用户对应的支付日志、品牌id对应的具体品牌信息、userId对应的sessionId、商品对应的广告。ps:我们课程里面涉及到了好多例子滴。
- 应对某些高并发情况
- 比如秒杀。
很多用户同时参加秒杀,并发很高。如果使用mysql之类的关系型数据库,可能会出现问题。这个时候,我们可以先把秒杀订单放到redis,最后在同步到mysql之类的数据库。
Redis能读的速度是110000次/s,写的速度是81000次/s
同类型技术?
MongoDB、memcached
如何把握?核心api?
分为服务端和客户端。
- 服务端
包括Redis在Linux下的安装、Redis的集群
-
客户端
客户端操作可以直接用jedis
然后就是调用api就可以了。
客户端操作可以用对jedis封装的spring-data-redis
然后就是调用api就可以了。
实际项目?
我们项目中大量用到了redis,不信你看看,我给你汇总汇总。
###1. erp项目中
缓存某一个UUID,可以访问的所有MenuID:
因为我们用到了shiro,shiro分为认证和授权,每次授权的时候时候知道用户(uuid)对应的菜单(menuid)。这里我们进行缓存,减少数据库的查询。
存:
取:
###2.品优购项目(好多地方用到了,但是总结起来就缓存和应对高并发)
购物车缓存:保存购物车(未登录保存到cookie,登陆后把cookie中购物车保存到redis,删除本地cookie购物车)
支付日志缓存:保存用户的支付日志,map类型。
短信验证码:保存短信验证码到缓存
保存品牌、规格、广告信息:可以理解为数据字典,减小数据库压力。使用的是 map类型
秒杀:利用到了redis的高并发,Redis递减
###3.淘淘商城
淘淘商城是老项目,单点登录用的redis实现session共享,新项目用的cas做的单点登录,这里redis起到session的共享,或者理解为中转站。
session共享:分布式项目不同服务器上的session需要共享数据,可以通过redis,这里还用到了redis的过期时间。
登录的时候:
根据token,获取用户信息:
相关面试题汇总
序号 | 问题描述 | 新增日期 |
---|---|---|
1 | 你们项目哪里用到redis/Redis你们怎么用的 | 2018-05-13 |
2 | 什么场景会选用redis | 2018-05-13 |
3 | redis可以存储什么数据类型 | 2018-05-13 |
4 | redis具体怎么存储 | 2018-05-13 |
5 | redis具体是怎么实现的 | 2018-05-13 |
6 | redis怎么更新的 | 2018-05-13 |
7 | redis缓存怎么设置大小 | 2018-05-13 |
8 | Redis怎么和数据库同步 | 2018-05-13 |
9 | Redis你们怎么部署的 | 2018-05-13 |
10 | 工作中Redis的持久方案,你们是怎么做的 | 2018-05-13 |
11 | redis怎么做集群 | 2018-05-13 |
12 | redis问到了主从数据如何同步 | 2018-05-13 |
13 | 还有怎么知道redis是否挂了,挂了以后怎么处理 | 2018-05-13 |
14 | redis穿透怎么解决 | 2018-05-14 |
15 | redis服务器挂了怎么办 | 2018-05-13 |
16 | redis哨兵模式搭建及作用 | 2018-05-14 |
面试题答案 https://www.jianshu.com/p/440c002ba1f9
加粗样式