Linux目录文件和基本指令
Linux目录文件和基本指令
Linux目录文件夹
基本指令
Linux目录文件夹
目录地址
目录内容
/bin
存放常用指令
/home
存放用户信息
/root
超级管理员目录(文件管理)
/etc
存放系统所需的配置文件和子目录
/usr
存放系统所需要的配置文件,类似windows下的programfile文件夹
/boot
存放Linux启动的核心文件,包括一些连接文件和镜像文件
/mnt
用于让用户临时挂载别的文件
/media
Linux自动识别设备:U盘,光驱等
/usr/local
另一个主机歪歪安装软件的目录,以编译源码的方式安装
/sbin
存放管理员(Super user)使用的管理系统管理程序/指令
/lib
类似DLL文件,存放基本动态连接共享库
/lost+found
一般是空文件且不可见,当系统非法关机后存放信息
/proc
虚拟目录【不可动】存放 ...
快速排序-part2
快速排序-part2快速排序是一种基于比较的排序算法,利用分治法来将一个序列分割成两个子序列进行排序,并利用递归的方式进行排序。快速排序是一种高效的排序算法,其时间复杂度为O(nlogn),空间复杂度为O(logn)。
【算法步骤】
1.选择基准值:从数列中选择一个元素作为基准值(pivot)。
2.分割:将序列中大于基准值的元素放在基准值的右边,小于基准值的元素放在基准值的左边。此时,基准值的位置已经确定了。
3.递归:对左右两边的子序列分别重复步骤1、步骤2,直到每个子序列只有一个元素时终止递归。
【时间复杂度】
最好情况下,每次选出的基准值都刚好平分整个序列,此时排序效率最高,时间复杂度为O(nlogn)。
最坏情况下,每次选出的基准值总是序列中的最小或最大值,导致递归树退化成只有一条支线,此时时间复杂度为O(n²)。
平均情况下,快速排序的时间复杂度为O(nlogn)。
【空间复杂度】
快速排序的空间复杂度为O(logn),主要是由于递归调用的栈所占用的空间。
【适用场景】
快速排序适用于数据量较大、数值分布比较均匀的情况下。由于快速排序对于数据分布的依赖性比较强,如果数 ...
Redis缓存淘汰测略
单线程的Redis为什么快?为什么需要缓存淘汰测略:
内存数据不淘汰会越来越多,最终导致内存溢出
八种内存淘汰测略:
不删除 key ,当到达最大阈值后报错 :noeviction
设过期 key 中选择使用数最小的 :volatile - lrw
在所有 key 中选择使用数最小的 :allkeys - lru
过期 key 中使用 lfu 算法 :volatile - lfu
所有 key 用 lfu 算法 :allkeys - lfu
过期 key 随机删除 :volatile - random
所有 key 碎甲删除 :allkeys - random
过期 key 中最早过期的删除 : volatile - ttl
lru:最近最少使用,实现方式 ...
Redis 6常见问题
本片学习内容整理至b站 IT老哥 的视频 《会了这些面试题后,可以挑战一下字节了》
单线程的Redis为什么快
五种基本数据类型底层采用什么数据结构
缓存雪崩,缓存穿透,缓存击穿,附加
Redis的过期淘汰机制
redis与memcached的区别
redis线程模型
哨兵Sentinel
如何实现redis事务
单线程的Redis为什么快?Redis有多快?官方给出的读写速度是10w/s,在单线程的前提下跑出这个好成绩,原因有以下几点:
Redis是完全基于内存的,因此读写效率高,同时Redis的持久化操作是通过fork子进程和Linux系统的页面缓存技术完成,并不会影响Redis
单线程操作:单线程避免了频繁上下文切换导致的性能开销
合理高效的数据结构
采用了非阻塞的IO多路复用机制:多路I/O复用模型是利用select,poll,epoll可以同时监察多个流的IO事件的能力,在空闲时阻塞当前线程,当有一个或多个流有IO事件时,就从阻塞中唤醒,程序再依次轮询所有的流,并且只依次顺序处理就绪的流,这种做法避免了大量无用操作
五种基本数据类型底层采用什么 ...
设计模式 —— 工厂模式
设计模式 —— 工厂模式目录
概述
实现
优缺点
概述工厂模式(Factory Pattern)是创造型设计模式的一种,它提供了一种创建对象的最佳方式:不对对象暴露创建逻辑,而是通过共同的接口指向新创建的对象
定义:创建对应对象的工厂类,将创建对象的工作交给工厂,提供信息使工厂生产复杂对象
使用场所:任何需要生成复杂对象的地方
实现(工厂方法模式:建立统一的工厂接口,具体类的工厂实现公共接口)
// 实现一个计算机基本的加减乘除运算
// 工厂接口
public interface IFactory {
Operation CreateOption();
}
// 加法类工厂
public class AddFactory implements IFctory {
public Opetation CreateOption() {
return new OperationAdd();
}
}
// 减法类工厂
public class SubFactory implements I ...
mysql备份
数据库备份
数据库备份语句与恢复语句
注意事项
示例展示
遇到的问题
数据库备份语句与恢复语句-- 数据库备份
mysqldump -u [username] -p [database_name] > [base_path].sql
[username]:为数据库登录用户名
[database_name]:你要备份的数据库名
[base_path]:存储文件的地点、
-- 数据库恢复
mysql -u [username] -p [database_name] < [base_path].sql
[username]:为数据库登录用户名
[database_name]:你要恢复的数据库名
[base_path]:存储文件的地点
注意事项
备份是mysqldump,恢复是mysql
输入命令后,系统会要求你填写登录密码,如果在 -p 后填入密码会报错
最后的参数是路径+文件名+.sql后缀,记得查看是否有权限在目标地址写文件
示例展示
没有报错信息就是最好的信息!
遇到的问题:
输入:mysqldump -u root -p 02-index > C:\Use ...
设计模式 -- 单例模式
设计模式 —— 单例模式目录
概述
实现
优缺点
概述单例模式是 创建型 设计模式的一种。让一个类只存在一个实例,也就是不允许其他人直接调用类,而是通过方法。
定义:确保一个类最多只有一个实例,并提供一个全局访问点
适用场景:例如平时的word文档,同时将一个文件打开两份进行修改会使得其中一份修改无效,所以不可以将一份文件打开为两份,在已经点开文件的同时在点击文件只会跳转到已打开的文件中。
实现// 需要单例的类有两种实现方法:预加载和懒加载
// 预加载
public class PreloadSingleton{
public static PreloadSingleton instance = new PreloadSingleton();
// 提前将对象实例化,不允许其他类实例该对象
private PreloadSingleton(){};
public static PreloadSingleton getInstance(){
return instance;
...
设计模式 -- 适配器模式
设计模式 —— 适配器模式目录
概述
UML
实现
优缺点
概述:适配器模式是 结构型 设计模式的一种。类似于设计一个中间接口,使得两边可以适配使用
定义:将一个接口转化为客户端所期待的接口,从而使两个接口不兼容的类可以在一起工作
适用场景:存在现成的类可以使用,但是我们的系统不兼容它提供的接口,且我们无法对其进行修改;多个团队独立开发系统的各个部分,但是先无法确定接口
UML:
Target:客户端使用的目标接口
operation方法:客户端使用的方法
Adaptee:不兼容的类
operation方法:类方法
Adapter:适配器类
debug方法:自己设定的,使用于接口转换的方法
实现:实现背景:想要调出某学校某宿舍的全部学生信息,但是学校管理系统大更新了依次,现在无法调用以前的查询接口。
确定目标接口
// 旧查询接口,输入宿舍楼,宿舍编号返回信息(简单处理就不返回详细信息了)
public interface SelectStu{
void selectMessage(int HouseNum,int Num);
}
...
设计模式 -- 责任链模式
设计模式 —— 责任链模式目录
概述
UML
实现
优缺点
概述:责任链模式是 行为型 设计模式的一种。如其名一般,责任链模式使每个处理器依次连接在一起成为一条链,用户的请求任务顺着这条链传递,直到符合条件的处理器将其处理返回。
定义:避免请求者和发送者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止
适用场景:当同一种请求可能被不同对象处理时,使用责任链让请求传递,到达对应对象处理返回
UML:
Handler:处理器接口
setNextHandler方法:允许设置责任链的下一位,参数为下一位,无返回
handler方法:处理方法,责任链上的处理器都要符合处理方法(同一参数和返回,防止错误)
ConcreateHandler:处理器,实现处理器接口,有多少个处理器定义多少个类
nextHandler方法:设置下一位处理器
handler方法:处理请求
实现:实现背景:员工A希望更新个人项目设备,向公司提出报销请求,数额为15w。每位领导权力不一样,能批付的金额也不一致,假设员工A的项目组长最大能批1w,部门经 ...