Redis
本博客参考了韩顺平老师的 Redis 课程讲义!
1 Redis 基础知识1.1 相关资料1.1.1 官网: https://redis.io1.1.2下载地址: https://redis.io/docs/getting-started/installation/install-redis-on-mac-os/1.2 为什么需要 Redis1.2.1 企业需求
高并发
高可用
高性能
海量用户
1.2.2 关系型数据库(如 MySQL)-问题
性能瓶颈: 磁盘 IO 性能低下
扩展瓶颈: 数据关系复杂, 扩展性差, 不便于大规模集群
1.2.3 Redis 的优势
内存存储-降低磁盘 IO 次数
不存储关系, 仅存储数据-数据间关系, 越简单越好
1.3 Redis 简介1.3.1 简述:Redis (Remote DIctionary Server) 是用 C 语言开发的一个开源的高性能键值对(key-value) 数据库
1.3.2 特征
数据间没有必然的关联关系
高性能——官方提供测试数据, 50 个并发执行 100000 个请求,读的速度是 110000 次/ ...
SpringMVC
本博客是根据韩顺平老师的SpingMVC课程进行的知识总结!
hexo 写文章步骤
hexo搭建博客配置注意事项:123456789101112131415161718//对文件夹进行配置hexo init//创建新文章hexo new "文章名称"hexo n "文章名称" //清理hexo缓存hexo clean//重新生成博客的静态文件hexo g//本地运行博客 若无法运行需要安装依赖:npm install hexo-server --savehexo s//部署博客到github仓库hexo d
在blog的package.json中修改:
“server”: “hexo server” 👉 “server”: “hexo clean && hexo generate && hexo server”
此后 执行npm run server = 同时执行以上三个命令
博客配置注意事项:123456文章头部:title: 文章标题date: 2023-06-02 12:04:52tags: 博客创建categories: 博客创建cover: https://i.lol ...
MyBatis-Plus
一、MyBatis-Plus1.简介MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
我们的愿景是成为 MyBatis 最好的搭档,就像 魂斗罗 中的 1P、2P,基友搭配,效率翻倍。
2.特性
无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑
损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作
强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求
支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错
支持主键自动生成:支持多达 4 种主键策略(内含分布式唯一 ID 生成器 - Sequence),可自由配置,完美解决主键问题
支持 ActiveRecord 模式:支持 ActiveRecord 形式调用,实体类只需继 ...
操作系统
操作系统(参照清华——操作系统课程):
os:对硬件的管理和控制 本课程着重对kernel层的研究
Chapter1 概述什么是OS?CPU —–> 进程
磁盘 —–> 文件
内存 —–> 地址空间
用户角度:
管理应用程序
为应用程序提供服务
杀死应用程序
资源角度:
资源管理
管理外设、分配资源
Kernel层内部组件:
CPU调度器
物理内存管理
虚拟内存管理
文件系统管理
中断处理与设备驱动
OS Kernel的特征:
并发
计算机系统中同时存在多个运行的程序,需要OS管理和调度
共享
互斥共享
虚拟
利用多道程序设计技术让每个用户都觉得有一个计算机专门为他服务。
异步
程序的执行不是一贯到底,而是走走停停,向前推进的速度不可预知
只要运行环境相同,OS需要保证程序的运行结果也相同
Chapter2 操作系统基础操作2.1 操作系统的启动开机顺序: 电脑开机后,将先执行bootstrap program程序(引导程序),引导程序一般位于计算机的固件中,由它初始化系统的内核以及各个组件。
2.2 中断、异常和系统调用中断(f ...
软件工程
软件工程Chapter1 Introduction软件工程学科产生的背景:软件危机:从结果来看,软件危机体现在:
软件质量差、可靠性难以保证
成本难以控制
开发进度难以把握
可维护性较差
从原因来看,软件危机由以下两点导致:
不断增长的系统复杂性
未有效采用软件工程方法进行开发
Frequently asked questions about software engineering
Question
Answer
What is software?
Computer programs and associated documentation. Software products may be developed for a particular customer or may be developed for a general market.
What are the attributes of good software?
Good software should deliver the required functionality and perfo ...
消息队列
消息队列1.MQ的相关概念(message queue)1.1什么是MQ:
本质是个队列,只不过队列中的内容是message而已!
用于上下游传递消息
1.2为什么要使用MQ1.流量消峰: 在用户访问系统前添加MQ,对访问的消息进行排队,虽然排队会消耗时间但不会出现流量过大导致服务器宕机的情况。
2.应用解耦: 如果没有MQ,比如用户在订单系统下单后,订单系统会立即调用物流系统,如果物流系统暂时出故障了,那么下单操作就会异常。
如果使用了MQ,用户在订单系统下单后,如果物流系统暂时出故障了,物流系统需要处理的消息会被缓存在MQ中,等到物流系统故障修复完成,就可以从MQ中取出待处理的信息。这个过程中,用户不会感受到物流系统的故障,因此提升了系统的可用性。
3.异步处理:有些服务间调用是异步的,例如 A 调用 B,B 需要花费很长时间执行,但是 A 需要知道 B 什么时候可以执行完。
以前一般有两种方式,A 过一段时间去调用 B 的查询 api 查询。或者 A 提供一个 callback api,B 执行完之后调用 api 通知 A 服务。这两种方式都不是很优雅 ...
SpringBoot
本博客是根据韩顺平老师的SpingBoot课程进行的知识总结!
SpringBoot快速入门
简化了传统的SSM开发,简化整合步骤,提高开发效率
简化了Maven项目的pom.xml依赖导入,可以说是一键导入
@SpringBootApplication:用于表示这是一个springboot应用/项目
依赖管理 pom.xml中
导入了父工程
1.spring-boot-starter-parent中还有父项目,声明了开发中常用的依赖的版本号
2.会自行进行版本仲裁(程序员没有指定某个jar依赖的版本,则以父项目指定的版本为准)
想要修改自动仲裁的版本:(依赖就近优先原则)
方式1:在pom.xml自行显式引入依赖
方式2:在pom.xml文件中的标签中执行版本号
场景启动器 官方给的starter形式为:spring-boot-starter-xxx
场景启动器能够帮你把使用xxx时所需要的配置全都配好,比如web、redis、jdbc等
第三方的starter形式为:xxx-spring-boot-starter
自动配置自动配置 ...