- 博客(51)
- 收藏
- 关注
原创 redis主从复制、哨兵模式、cluster集群
和mysql的主从复制类型一致,主可以写,写入主的数据通过RDB方式把数据同步到从服务器。从不能更新到主。是哨兵模式的基础。
2024-08-11 16:08:25 1125
原创 redis持久化
save不能直接在命令行执行,一旦执行了save,redis的主进程会进入阻塞状态,读写都将不能进行,直到save完成,才能继续读写,save在生产当中禁用。redis的缓存数据有一部分丢失了,导致请求转发到了数据库,或者是缓存刚刚过期,新缓存还没有建立,请求都转发到了数据库。AOF持久化的实时性更好,只要操作了都会记录在日志文件中,进程出现意外时,丢失的数据更少,AOF是主流的持久化方式。表示内存的碎片比例,以及分配的内存,但是没有使用的内存,这个值越低越好,越低内存利用率更高。
2024-08-11 16:07:41 890
原创 redis
远程字典服务器开源的,c语言写的nosql数据库redis基于内存运行,所有的数据不是保存在硬盘,而是内存。具有持久化功能持久化:定期或者人为的把数据保存到硬盘。
2024-08-11 16:06:01 830
原创 mysql---MHA高可用架构
1、从宕机崩溃的master保存二进制日志事件(binlog events);主和备不是优先级确定的,主从复制的时候就确定了主,备是在HMA的过程中确定。3、应用差异的中继日志(relay log)到其他的slave。2、数据同步还是依靠二进制日志,最大程度上保证数据的完整。6、使其他的slave连接行的master 进行复制。4、应用从master保存的二进制日志事件。2、识别含有最新的更新 slave 日志。高可用模式下的故障切换,基于主从复制。3、半同步的方式实现数据的完整性。
2024-08-11 15:52:28 275
原创 mysql的主从复制和读写分离
主服务器上的任何修改都会通过自己的I/O线程保存在二进制日志里面。从服务器上也启动一个I/O线程。通过配置好的用户名和密码,连接到主服务器上请求读取二进制日志,然后把读取到的二进制日志写到本地的一个RealyLog(中继日志)里面。从服务器上同时开启一个SQL线程定时检查RealyLog。如果发现有更新立即把更新内容写入本机的二进制日志中,并且在本机的数据库上执行一遍。
2024-08-11 15:08:16 809
原创 mysql的高阶语句
因为在实际工作中,表和列的名字可能会很长,书写不方便,多次声明表和列时,完整展示太复杂,设置别名可以使书写简化,简介明了,可读性也增加了,视图是一个虚拟表,表的数据基于查询的结果生成 视图可以简化复杂的查询,隐藏复杂的细节,访问数据更安全 视图表是多表数据的集合体。嵌套的select才是子查询,先执行子查询的语句,外部的select再根据子条件的结果进行过滤查找。两个表相同的部分展示出来,做拼接,不同的结果显示null。表的权限是不一样的,因为库的权限是有控制的,所有查询视图表的权限相对低。
2024-08-11 15:06:30 870
原创 mysql数据库
1、delete from 表名 :保留表结构,一行一行的清除表数据,速度比较慢,如果有自增长字段,delete清空之后,会继续按照原来增长的序号继续递增。:auto_increment,在列生成的每一行都会自动生成一个唯一标识符,通常和主键一起使用,每次插入新行时,自增列的值会自动增加。删除主键不需要加上主键的列名,如果有extra的额外属性,比如说自增长,要先移除属性,然后才能删除主键。数据类型可以一起修改。外键是和主表进行关联的列,不需要设置为从表的主键,但是不能为空,必须和主表的数据类型保存一致。
2024-08-06 17:28:12 1182
原创 lvs加keepalive高可用集群
lvs集群当中的高可用架构只是针对调度器的高可用基于vrrp来实现调度器的主和备高可用的HA架构主调度器和备调度器(多台)在主调度器正常工作的时候,备完全处于冗余状态(待命),不参与集群的运转,只有当主调度器出现故障时,备才会承担主调度器的工作。主调度器恢复功能后,主继续做为集群的入口,备继续处于冗余状态(取决于优先级)
2024-08-06 17:08:16 1191
原创 lvs集群
linux的内核层面实现负责均衡的软件主要作用:将多个后端服务器组成一个高可用,高性能的服务器集群,通过负载均衡的算法将客户端的请求分发到后端的服务器上。来实现高可用和负载均衡。阿里的SLB(server loab balance),是用lvs+keepalive实现的系统的扩展方式:垂直扩展:向上扩展,增强,性能更强的计算机。瓶颈,计算机本身设备的限制,硬件本身的性能瓶颈水平扩展:向外扩展,增加设备。并行的运行多个服务,依靠网络解决内部通信的问题,cluster 集群。
2024-07-14 22:10:07 1064
原创 tomcat的优化、动静分离
tomcat的并发处理能力不强,大项目不适应tomcat做为转发动态的中间件(k8s集群,pytnon rubby),小项目会使用(内部使用的)动静分离默认配置不适合生产环境,可能频繁出现假死,需要不停的重启。根据生产环境的实际情况,自行测试。
2024-07-14 17:30:17 699
原创 tomcat
host:一个host就是一个主机,也可以叫站点,通过配置host,可以添加多个站点,一个engine可以有多个host。connector:负责对外接收和响应请求,它是tomcat于客户端沟通的一个枢纽,监听端口接收外界请求。1、servle容器:执行java servlet ,服务端的java程序,处理客户端的http请求,以及响应。2、jsp容器:javasever page,这是一种动态页面的技术,可以在html的页面里面嵌入java代码。web应用程序的界面,这个界面的语言是用java实现的。
2024-07-14 16:30:43 1299
原创 nginx的匹配方式和重定向
再重定向的过程中,使用了last方式进行重定向,但是没有结束语,陷入了死循环,nginx会自动循环10次,last匹配最多只能 执行10次,超过10次没有接受,就会停止,然后报错500.2、基于客户端的ip进行跳转(公司有新业务上线,属于测试阶段,其他的ip只能显示维护中,只有192.168.233.10能正常访问)redirect :临时重定向,返回码是302,浏览器地址栏会显示跳转后的URL地址。permanent:永久重定向,返回码是301,浏览器地址会显示跳转后的URL地址。
2024-07-14 14:04:07 949
原创 nginx优化与防盗链
netstat -n | awk '/^tcp/ {++s[$NF]} END {for (a in s) print a s[a]} :统计当前系统。出现四次挥手之后,处于等待状态,双方不再发送数据。time_wait所占用的系统资源很小,数量比较少,完全可以忽略不计。连接断开(四次挥手)之后,尽快的把time_wait状态的连接进行回收。在http块中修改隐藏,不再server中,也不是location。apache是自带日志分割的,按天来进行收集日志。nginx没有自带分割功能,脚本来实现日志分割。
2024-07-14 13:34:29 345
原创 web服务软件-----nginx
http就是apache,在国内很少用国内大多用nginx,nginx是开源的,是一款高性能,轻量级的web服务软件稳定性高,而且版本迭代比较快(修复bug速度快,安全性高)消耗系统资源很低,http的请求并发连接,单台服务器可以支持3-5万个并发请求。(系统资源全部分配给nginx),单个节点的nginx一般支持2万个并发。
2024-07-14 13:22:33 824
原创 web基础与HTTP协议
缓存可以把用户的一些行为和操作,保存下来,下一次再访问,可以保留这些状态,不需要和web服务器进行额外的通信,提高了访问的效率。http1.1只要建立的连接,除非数据发送完毕,否则不需要为了其他的资源专门的再建立额外的连接。网站建设的基础,早期的网站都是静态页面,没有后天数据库,没有其他的程序,也无法交互的页面。请求的方式是get,那么stauts cods:请求收到之后,服务器对请求的响应的状态码。1.网页:纯文本格式的文件,HTML语言,即超文件标记语言,是一种规范,也是一种标准。
2024-07-02 16:57:41 1279
原创 shell 免交互
1)标记可以是任意合法字符(一般不用特殊字符,不以数字开头,通常以EOF作为默认的标记位)命令行格式,也可以写在脚本当中,通过I/O重定向的方式将命令的列表传送给交互式程序或命令。交互:我们发出指令控制程序的运行,程序在接收到指令之后按照指令的效果做出对应的反应。用tcl语言写的一个工具,主要用于自动化控制和测试,解决shell脚本交互的问题。免交互:间接的,通过第三方的方式把指令传送给程序,不用直接的下达指令。2)结尾的标记一定要顶格写,前面不能有任何字符,空格也不行。\b :表示退格,相当于删除。
2024-07-02 08:52:59 247
原创 安全技术和防火墙
2入侵防御系统:透明模式工作,如数据包,网络监控,服务攻击,木马,蠕虫,系统漏洞等进行准确的分析和判断。在判断为攻击行为后会2立即阻断,主动的防御(所有的数据在进入本机之前,必须要通过的设备或者软件)filter表:也是iptables的默认表,不做声明,默认就是filter表,过滤数据包,控制数据包的进出,以及接受和拒绝数据包。OUTPUT链:处理本机发出的数据包的规则,或者是数据包离开的本机的规则(filter表,一般不做设置)五大要素:源ip,目的ip,源端口,目的端口,协议(TCP/UPD)
2024-07-01 15:55:09 934
原创 shell数组
满足交换条件的元素,小的往左移,大的往右移。用双层循环,外部循环控制排序的轮次,内部循环来比较两个元素的大小,决定是否互换位置。echo ${数组名[*]:0:2},0表示起始位置,2表示步长,包括0,移两个。定义:在集合当中指定多个元素,元素的类型:整数,字符串,可以是浮点。会将数组当中的元素按照从小到大,或者从大到小的顺序进行一个重新排序。临时替换:echo ${数组名[*]/元素值/替换后的元素值}如 :echo ${数组名[0]},查看数组内第一个元素。永久替换:数组名[下标]=修改后的元素值,
2024-06-23 11:40:27 174
原创 shell函数
return的作用:只能写在函数内部,目的是从函数的内部获取一个返回值,用来判断是否继续执行下一个脚本。不再是判断执行结果,只是一个函数内部的返回值。加了local后,就是函数内部的变量,而不再是全局变量,外部的赋值会替换内部的变量值。函数库,函数库中只包含定义的函数,由另外一个脚本传入参数来调用我们定义的函数。格式指的是函数的固定格式。在函数内部定义了全局变量,外部的赋值不能改变内部函数的全局变量。作用:方便重复使用,函数库,集中在一起,随时传参调用。将大的工程分割成若干小的功能模块,提高代码的可读性。
2024-06-23 11:37:56 256
原创 循环控制语句
测试一个网段,C类私有地址,32位的网段,测试可以ping通的地址,保留到/opt/hosts.txt;定义好一个密码,脚本判断密码输入是否正确,正确的密码是123456,输入正确则提示正确,输入3次错误则密码已锁定。continue:把执行到continue时,跳出当前循环,但是如果循环条件依旧满足,会执行后续的循环条件。break:在循环内部,执行到break命令时,会立即跳出当前循环,并终止。until循环:条件不满足才执行循环,一旦条件成立,循环终止。计算器,实现整数的+,-,*,/,以及%
2024-06-23 11:16:54 216
原创 fot循环语句
continue:把执行到continue时,跳出当前循环,但是如果循环条件依旧满足,会执行后续的循环条件。1.某山顶上有一颗香蕉树,一只猴子第一天从树上摘了若干根香蕉,当即就吃了一半,还不过瘾,第二天猴子又将剩下的香蕉吃了一半,禁不住诱惑,又多吃了一根香蕉。循环是一种重复执行一段代码的结构,只要满足循环的条件,会一种执行这个代码。break:在循环内部,执行到break命令时,会立即跳出当前循环,并终止。1)*重复执行代码,尤其是统一的,相同的,批量的操作。3)提高人工的效率,减少人工的干预,提高效率。
2024-06-23 10:58:16 403
原创 shell条件测试语句
[ ]] 可以使用更高级的模式,可以使用正则表达式,而且,在双中括号当中,使用字符串的时候可以不加引号。要求如果命令选项不对,则提示输入不正确: {start|stop|status|restart}2.提示用户输入100米赛跑的秒数,要求判断秒数大于0且小于等于10秒的进入选拔赛,如果if条件不满足,则看下一个elif条件,还不满足,再看下一个elif条件...3.提示用户输入内容,使用if 语句判断输入的内容是否为整数。else +命令序列上面条件都不满足时,执行该命令 ,双分支结构。
2024-06-21 16:57:27 712
原创 shell脚本
脚本就是可运行的代码的集合,脚本语言(计算机语言)。脚本的特点:从上到下,按行执行python脚本语言,格式更严谨,严格的执行缩进,也是从上到下按行执行shell脚本就是在shell环境(/bin/bash),bash就是shell的解锁器。linux环境下的编程语句shell脚本为了自动化运维,可重复执行的,自动化的在系统中实现增删改查的操作1)不要使用系统的命令作为变量名2)不要使用中文3)不要使用特殊符号开头,可以用_开头,不要使用数字开头4)变量名一般使用对应的英文名称来使用。
2024-06-16 17:06:22 768
原创 pxe和无人值守
pxe:c/s模式,允许客户端通过网络从远程服务器(客户端)下载引导镜像,加载安装文件,实现自动化安装操作系统。tftp 简单文件传输协议 ,传小文件,引导镜像文件很小,使用tftp。软件:服务端要有dhcp服务,可以在客户机启动时,自动分配ip地址。无人值守:就是按照选项不需要人为干预,可以自动化实现。vsftp 文件传输协议,传大文件,安装文件。硬件:网卡要支持pxe协议。1)规模化,可以同时装配多台服务器。c/s客户端和服务的都可以是多台的。3)远程实现,不需要光盘,u盘。
2024-06-16 17:06:02 222
原创 ssh远程管理,NFS共享目录,yum
ssh-copy-id -i id ecdas.pub (-p 端口号)root@对方主机ip:把公钥文件发送到对方主机。例:/opt/gongxiang 192.168.233.0/24(rw,sync,no_root_squash)192.168.233.0/24 :声明网段,谁可以访问本机的共享目录。no_root_squash: 如果客户机以root用户访问共享目录,就给你和本机的root用户一样的权限。(rw,sync,no_root_squash) 权限,共享目录的使用者的权限。
2024-06-11 15:31:35 1107
原创 DNS域名解析
例:访问baidu,就是计算机向dns服务器发起查询请求,dns搜索自己的数据库,域名和ip的映射关系,然后ip地址返回给计算机,计算机访问的还是域名对应的ip。2)进入cd /var/named 将正向配置文件xy102.com.zone保留权限复制成xy102.com.zone.local。在访问域名的时候,通过dns解析,把域名映射的ip地址解析出来,然后实际上访问的还是域名映射的ip地址。两个网卡都知道对方的mac地址。配置数据文件,解析地址:/var/named/named.localhost。
2024-06-05 17:35:13 923 1
原创 DHCP和FTP协议
3)把模板文件/usr/share/doc/dhcp-4.2.5/dhcpd.conf.example复制并覆盖到/etc/dhcp/dhcpd.conf。userlist_deny=YES #默认为YES,为黑名单,禁止user_list名单上的用户进行访问。客户端从地址池当中随机获取一个ip地址,ip地址会发生变化,使用服务端提供的ip地址,时间限制,重启之后也会更换。c/s(client /servers)客户端 /服务端:应用程序之间,通过端口进行通信,实现c/s。
2024-06-04 17:57:30 964
原创 linux网络
ifconfig ens33:0 192.168.233.100:基于物理网卡设备虚拟的地址,重启就会消失。nslookup +ip地址 :反向解析,根据ip地址解析出对应的域名。ifconfig +网卡设备 up/down:对指定网卡设备进行开关。lsof -i -P -a -p +进程号(不是服务名称)lsof -i:端口号 : 列出指定的端口被哪些进程占用。ifconfig +网卡设备 :查看指定网卡设备。ifdown +网卡设备:对指定网卡设备进行关。如需要对单个设备重启:ifup ifdown。
2024-06-03 23:14:16 975
原创 linux文件系统与日志分析
.info: *表示所有,表示系统当中的设备,或者程序。info:包含info级别以上的日志*.=info:明确指定只保存info日志,其他的都不要*.!info:除了info级别的都要,!取反auth :用户认证产生的体质daemon:守护后台进程的进程authpriv:SSh,FTP登录验证的信息news:网络传输产生的信息syslog:系统的相关日志kern:系统的内核日志user:用户的进程日志local0-local7:自定义程序的日志。
2024-06-02 12:42:34 468
原创 系统安全及其应用
sufficient:一票通过,成功了之后就是满足条件,但是失败了,也可忽略,成功了执行验证成功的结果,失败返回验证失败的结果,最终的结果。required:一票否决,只有成功才能通过认证,认证失败,也不会立刻结束,只有所有的要素验证完整才会最终返回结果。linux系统身份认证的架构,提供了一种标准的身份认证的接口,允许管理员可以可以自定义认证的方式和方式。requisite:一票否决,只有成功才能通过,但是一旦失败,其他要素不再验证,立刻结束。授权模块:控制用户对系统资源的访问,文件权限,进程的权限。
2024-05-30 21:35:34 1195 1
原创 RAID磁盘阵列
可以用不同的硬盘分区,组成一个逻辑上的硬盘高可用,冗余磁盘的组成方式不同,也就是不同的raid级别:raid0raid1raid5raid6raid1+0。
2024-05-29 21:41:47 963
原创 LVM与磁盘配额
传统的硬盘分区是固定的,分配完之后无法进行调整,如要调整只能推到重来,逻辑卷是把卷组分为多个硬盘,不再考虑底层的物理硬盘,可以实现多个硬盘的汇聚以及动态扩容。vgcreate swz(卷组名) /dev/sdb1 /dev/sdc1 /dev/sdd1(磁盘名)2)创建卷组(第一二步可以合并):vgcreate + 卷组名 + 物理卷名1 + 物理卷名2...lv:逻辑卷,把卷组进行分区,相当于物理硬盘的分区,但逻辑卷可以动态扩容。vg:卷组,把物理上的分区结合起来,就形成了卷组,卷组就是逻辑上的硬盘。
2024-05-28 17:30:10 810
原创 硬盘和硬盘的分区
硬盘的最小存储单位:扇区,扇区的最小存储单位是512kb,连续的扇区组成磁道,读写都是围绕磁道进行。然后 fdisk /dev/分区的硬盘 或 gdisk /dev/分区的硬盘 进入交互界面。fdisk /dev/分区的硬盘 或 gdisk /dev/分区的硬盘 进入交互界面。fdisk /dev/分区的硬盘 或gdisk /dev/分区的硬盘 进入交互界面。1)数据的组织和存储,文件系统提供了组织数据的结构,能够把文件分为不同的目录。一般操作系统的分区都使用统一的文件系统。
2024-05-27 17:09:15 1170
原创 进程和计划任务管理
load average: 0.00, 0.01, 0.05 :系统的负载,三个数字分别1分钟 ,5分钟 ,15分钟内系统处理的任务数的平均值。,:表示间隔 多个不连续的时间点,例:10,30,50 * * * * , 每个小时的第十分钟,第三十分钟,第五十分钟 都执行一次。- :表示连续的时间范围:例2-10 * * * * ,每小时的2-10分钟内,每分钟都执行。pid:进程号,每个进程在系统中运行时的唯一标志,pid都是不重复的,唯一的。WCHAN:如果进程处于休眠状态,显示睡眠中的系统函数名。
2024-05-26 21:52:20 647
原创 引导过程与服务控制
检测成功后,根据预设的启动顺序(默认的顺序中,第二个是硬盘,或者手工设置的U盘启动),将系统的控制权转到了硬盘(大多数的时候是转移给本机的硬盘)。系统的控制权到了硬盘,根据MBR记录表来找系统的启动盘,找到后将系统的控制权传递给包含操作系统引导文件的分区,以及MBR中记录系统的启动菜单。② /lib/systemd/syetem,也是系统中第一个进程,也是所在其他进度的夫进程,他的进程号也永远是1。MBR是硬盘的分区记录表,在这个表里面记录硬盘的分区,以及系统的启动盘的位置在哪。
2024-05-23 16:37:55 856
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人