java高频考点 1
https://blog.csdn.net/weixin_49198221/article/details/121238886
java高频考点 2
https://blog.csdn.net/weixin_49198221/article/details/122144294
1.Redis是一个缓存数据库
2.点赞,点击数,评论数,缓存近期热帖,缓存文章详情信息,记录用户会话信息
1.数据缓存功能
2.分布式锁功能
3.数据的持久化
4.支持事务
5.支持消息队列
本质上就是该进程还在运行,另一个进程又想进入,但该进程还没有执行结束,另一个只能放弃或等待再试
4.Redis持久化1.RDB快照:快照是一次全量备份,数据是以二进制的方式序列化存储,内存非常紧凑
2.AOF日志:是连续的增量备份,是以数据修改的指令记录文本,暂用内存较大
访问一个key对应的value在数据库中不存在,每次针对key的请求从缓存中获取不了,那么该请求都会访问到数据库中,从而可能击穿数据库
解决方案:
1.如果返回的值是为空的,那么久把该值空值缓存到Redis中去;
2.用布隆过滤器,把可能存在的哈希存到bitmap中,从而会被bitmap拦截
如果大量的并发去请求一个已经过期的key时,Redis会嘉爱数据库的数据到缓存中,这可能会导致数据库击垮
解决方案:
使用互斥锁
当缓存服务器重启或在有大量的缓存集中时在某一刻失效,很可能会给数据库带来很大的访问压力
解决方案:
1.在Redis和数据库中间加一个消息队列,保重消息不会在同一时间访问数据库
2.给每个缓存请求添加一个随机事件,也避免了同时大量访问引发的集体失效.
1.合理设置缓存获取的时间
2.增改删 *** 作时同步更新Redis,可以使用事务机制保证数据的一致性
- 类加载器
- 运行时数据区
- 执行引擎
- 本地库接口
组件作用: 首先通过类加载器会把java代码转换成.class文件,运行时数据区再把.class加载到内存中,而.class文件只是jvm的一套指令集规范,并不能直接交给底层 *** 作系统执行,因此需要塔顶的命令解析执行引擎,将.class翻译成底层系统指令,再交给cup去执行,而这个过程需要调用其他语言的本地库接口类实现整个程序的功能.
1.MVC 是一种设计模式,它实现了显示模块与功能模块的分离
2.提高了程序的可维护性,可移植性,可扩展性与可重用性
3.主要分 模型 视图 控制器
模型:主要包括业务逻辑模块,和数据模块
视图:用户与之交互的
控制器:接收请求交给模型处理,控制器只起到了连接作用
1.降低代码耦合性
2.有利于分工合作
3.有利于组件的重用
1.SSM是spring springMVC mybatis的三个框架组合,SSM限定了只能开发java web应用
2.spring boot没有和任何MVC框架绑定,没有和任何持久层框架绑定,简化了配置
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)