运维面试常见问题

本文介绍了Redis、Tomcat、Nginx和Mysql的常见问题。Redis用于缓存和数据持久化,存在缓存一致性等问题;Tomcat有多种部署和工作模式,可进行内存等优化;Nginx适用于高并发,有多种负载均衡算法;Mysql涉及连接类型、索引、事务隔离等知识,还提及性能优化方法。

一.Redis的常见问题

redis面试简单总结:
1.Redis主要是用于做缓存,数据的持久化的作用,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
2.Redis不仅仅支持key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
3.Redis支持数据的备份,即master-slave模式的数据备份。
4.性能极高 读写速度非常快– Redis能读的速度是110000次/s,写的速度是81000次/s

Redis一般应用在:
1、热点数据的缓存。
2、限时业务的运用,利用这一特性可以运用在限时的优惠活动信息、手机验证码等业务场景。
3、计数器相关问题,所以可以运用于高并发的秒杀活动、分布式序列号的生成。
4、排行榜相关问题,进行热点数据的排序。

Redis的缺点
1.缓存和数据库双写一致性问题
2.缓存雪崩问题(小企业一般不会遇见)
3.缓存击穿问题
4.缓存的并发竞争问题
Redis为什么是单线程的
因为CPU不是redis的瓶颈,redis的瓶颈最有可能是机器内存或网络带宽,而且单线程容易实现,所以就采用单线程。

Redis和数据库双写一致性问题
采取正确更新策略,强调一致性要求的数据时,一定不能放缓存。
必须先更新数据库,再删缓存。
新增,更改,删除数据库操作时同步更新redis,可以使用事务机制来保证数据的一致性
其次,因为可能存在删除缓存失败的问题,提供一个补偿措施即可,例如利用消息队列。

什么是缓存穿透,怎么解决
缓存穿透:指查询一个一定不存在的数据,由于缓存是不命中时需要从数据库查询,查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库查询,造成缓存穿透。
解决方案:最简单粗暴的方式,如果一个查询返回的数据为空(不管数据存不存在还是系统故障),我们就把这个空的结果进行缓存,但它的过期时间会很短,最长不超过5分钟

Redis持久化策略
redis的数据都保存在内存中,如果断电或宕机,则内存数据将擦除,导致数据丢失。
1.RDB模式
特点:
是redis中默认的持久化策略
定期持久化,保存的是redis中的内存数据快照,持久化文件占用空间较小
可能导致内存数据丢失
命令:
前提:需要在redis的客户端中执行
save命令,立即持久化,会导致其他操作陷入阻塞

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值