目录
1.什么是守护进程
守护进程是一个在后台运行并且不受任何终端控制的进程,Unix操作系统有很多典型的守护进程(其数目根据需要或20-50不等),它们在后台运行,执行不同的管理任务,
用户使守护进程独立于所有终端是因为,在守护进程从一个终端启动的情况下,这同一个终端可能被其他的用户使用,例如,用户从一个终端启动守护进程后退出,然后另外一个人也登陆这个终端,用户不希望后者在使用该终端启动的任何守护进程的运行,虽然让服务器后台运行很容易,但用户还应该做些工作,让程序本身能够自动进入后台,且不依赖于任何终端。
2.systemctl的作用
systemctl 是一个用于管理系统服务的命令行工具,
它是 Systemd 系统和服务管理器的一部分。
Systemd 是在大多数现代 Linux 发行版中作为 init 系统的替代品,并提供了对系统启动、停止、重启和配置服务等功能的更强大控制。
systemctl 是一个强大的工具,用于管理和控制 Linux 系统上的各种服务和系统单元。它提供了丰富的功能和选项,使管理员能够轻松地管理整个系统的运行状态和配置。
systemctl 的主要作用和含义如下:
1.启动和停止服务:使用 systemctl start <service> 命令可以启动指定的服务,而 systemctl stop <service> 命令则可以停止服务。这些命令会自动处理依赖关系,确保服务及其依赖的服务以正确的顺序启动或停止。
2.重启和重新加载服务:使用 systemctl restart <service> 命令可以重启服务,而 systemctl reload <service> 命令则可以重新加载服务。与简单地停止再启动服务不同,重启和重新加载命令能够尽可能地避免服务中断。
3.查看服务状态:使用 systemctl status <service> 命令可以查看指定服务的当前状态,包括是否正在运行、最后一次成功启动/停止的时间等。该命令还会显示任何错误或警告消息,帮助诊断和调试服务问题。
4.启用和禁用服务:使用 systemctl enable <service> 命令可以将服务配置为在系统启动时自动启动,而 systemctl disable <service> 命令则可以禁止服务的自动启动。这些命令会创建或删除相应的符号链接,用于在适当的运行级别下启动或停止服务。
5.查看服务日志:使用 systemctl status <service> 命令可以查看服务的当前日志输出。如果需要查看完整的服务日志,可以使用 journalctl -u <service> 命令来检索和过滤与指定服务相关的日志条目。
6.管理系统单元:除了服务,Systemd 还管理其他类型的系统单元,如挂载点、设备、套接字等。systemctl 命令提供了对这些单元的管理功能,例如启动或停止挂载点,加载或卸载内核模块等。
3.Redis的RDB持久化机制
RDB是Redis的一种持久化机制,用于Redis内存中的数据以快照的形式保存到磁盘上,以防止数据丢失,
1.生成快照:根据配置的策略,Redis会周期性的将内存中的数据生成快照,常见的触发条件包括指定时间间隔,指定写操作次数或者写操作与时间间隔的组合
2.快照生成过程:快照生成时,Redis主进程会fork出一个子进程,并在子进程中进行快照的具体操作,这个过程中,Redis使用copy-on-write机制,保证在生成快照时主进程能够进行处理命令和请求
3.快照文件生成快照后,Redis将快照以二进制文件形式保存到磁盘上,这个快照文件是一个压缩完成的二进制文件,包含了Redis数据库中所有的数据
4.Redis的 AOF持久化机制
AOF是 Redis 的另一种持久化机制,用于记录每个对 Redis 数据库进行写操作的日志,以防止数据丢失。
1.写操作记录:当Redis 执行写操作时(例如 SET、INCR、DEL等),它会将写操作以加的方式记录到 AOF 文件末尾。记录的内容是 Redis 协议格式的命念.
2.文件同步:为了确保持久化的可靠性,可以通过配置 sync 选项来控制 AOF 文件何时被同步到磁盘上。可以选择每个写操作都同步一次 (fsvnc evervsec) 或每人命今发送时同步一次 (fsync alwavs)
3.AOF 重写(AOF Rewrite) :为了控制 AOF 文件的大小并避免长期运行后文件过大导致读取和恢复的困难,Redis 提供了 AOF重写机制。AOF 重写是指根据内存中的数据重写生成一人新的 AOF 文件。重写后的文件只包含重写期间实际被执行的命令,不包合对数据讲行读取、删除或覆盖的写操作。
5.yum是什么
yum是一种用于管理和更新Red Hat系列Linux发行版软件包的包管理工具。它基于RPM(Red Hat Package Manager)系统,提供了简化的软件安装、升级和删除流程,并处理软件包之间的依赖关系。
yum利用仓库配置、元数据下载、依赖关系解析、软件包管理和事务处理等机制,提供了方便的软件包管理功能。它使系统管理员能够轻松地查找、安装、升级和删除软件包,同时处理复杂的依赖关系,确保系统的安全和稳定性。
以下是yum的原理和机制:
1.仓库配置:yum通过配置文件/etc/yum.repos.d中的仓库文件来确定软件包的来源。每个仓库文件指定了一个或多个URL或本地路径,用于下载软件包和元数据信息。默认情况下,yum会使用Red Hat的公共仓库,但您也可以配置自定义的仓库。
2.元数据下载:在运行yum命令时,它首先检查本地缓存是否已包含所需的元数据信息。如果缓存中没有或需要更新元数据,则会从配置的仓库中下载相应的元数据文件。元数据包括软件包清单、描述、依赖关系等信息。
解析依赖关系:通过分析软件包的元数据,yum能够确定软件包之间的依赖关系。当要安装或升级一个软件包时,yum会检查其依赖关系并确保所有依赖的软件包都可用。如果有任何缺少的依赖关系,yum会自动下载并安装这些依赖的软件包。
3.软件包管理:一旦确定了要安装或升级的软件包及其依赖关系,yum会从配置的仓库中下载相应的RPM包。下载后,yum会执行必要的验证和校验来确保软件包的完整性和可靠性。然后,它使用RPM工具来安装、升级或删除软件包。
4.事务处理:yum将所有操作视为事务,并在执行之前进行事务检查。这意味着如果任何错误或冲突发生,yum会回滚事务并还原到之前的状态。这确保了系统的一致性和稳定性。
6.linux中mysql连接客户端
1.查看防火墙是否开放3306端口
命令: firewall-cmd --query-port=3306/tcp
2.设置3306端口为永久开放
命令:firewall-cmd --add-port=3306/tcp --permanent
3.查看firewalld状态,发现当前是dead状态,即防火墙未开启
命令:systemctl status firewalld
4.关闭防火墙
命令:systemctl stop firewalld
5.重启防火墙(设置了新的端口记得先关闭,再重启),温馨提示:开不开防火墙都可以
命令:systemctl start firewalld
6.设置3306端口为永久开放
命令:firewall-cmd --add-port=3306/tcp --permanent
7.再次尝试连接
8.再次失败,进入mysql
执行 use mysql;
执行 update user set host = '%' where user = 'root';
执行 FLUSH PRIVILEGES;
再次连接
7. 堆和栈
Python中堆里面存放的是具体的对象,在堆中Python会为其分配具体的内存空间,此地址即为此对象在内存中的地址
Python中栈里面存放的是对象的地址,而不是对象本体
8.sha256
SHA-256是一种加密哈希函数,被广泛用于计算机安全领域。SHA是“Secure Hash Algorithm(安全散列算法)”的缩写,而256表示SHA-256生成的哈希值的长度为256位。
9.pickle
在Python中,"pickle"是一个用于对象序列化和反序列化的模块。它允许你将一个Python对象转换成一种可存储或传输的格式,然后在需要时重新构建该对象。
10.python的事务
事务是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列组成。事务的目的是为了保证数据的一致性。
数据库事务具有4个特性(ACID特性)
1.原子性(Atomicity):事务作为一个整体被执行,包含其中的对数据库的操作要么全部都被执行,要么全部都不执行。
2.一致性(Consistency):事务应该确保数据库的状态从一个一致状态转变为另一个一致状态。一致状态的含义是数据库中的数据应满足完整性要求。
3.隔离性(Isolation):多个事务并发执行时,一个事务的执行不应影响其他事务的执行。
4.持久性(Durability):已被提交的事务对数据库的修改应该永久保存在数据库中。