Psync ? -1命令
主动请求主服务器进行完整重同步
数据结构分为几种?
集合、线性结构、树形结构、图形(网状)结构。
集合
数据结构中的元素之间除了“同属一个集合” 的相互关系外,别无其他关系。
线性结构
线性结构中的数据元素之间是一对一的关系。常见的线性结构有:线性表、栈、队列、字符串、数组、广义表等。
树形结构
树形结构中的数据元素之间是一对多的关系。常见的有二叉树、二叉查找树、平衡二叉查找树等
图形(网状)结构
图形(网状)结构中的数据元素之间是多对多的关系。
分类
按照存储方式分为链式存储和顺序存储 。顺序表、栈、队列都属于顺序存储。
按照逻辑结构分为线性和非线性。集合、树形结构、图形结构都属于非线性。
虚拟内存
虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。大多数操作系统都使用了虚拟内存,如Windows家族的“虚拟内存”;Linux的“交换空间”等。 【百度百科】
虚拟内存允许程序在实际可用物理内存(RAM)有限的情况下,使用更大的内存空间。虚拟内存通过将程序的地址空间与物理内存空间分开来实现这一目标,使程序能够使用比实际物理内存更大的内存地址空间
三个重要能力
- 将主存看成是存储在磁盘文件上的地址空间的高速缓存,在主存中只保存活动区域,并根据需要在磁盘和主存之间来回传送数据,通过这种方式,它高效地使用了主存。
- 为每个进程提供了致的地址空间,从而简化了内存管理。
- 保护每个进程的地址空间不被破坏。
HTTP状态码
分类
1xx 状态码:代表请求已被接受,需要继续处理。这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束。由于 HTTP/1.0 协议中没有定义任何 1xx 状态码,所以除非在某些试验条件下,服务器禁止向此类客户端发送 1xx 响应。
2xx 状态码:代表请求已成功被服务器接收、理解、并接受。
3xx 状态码:代表需要客户端采取进一步的操作才能完成请求。通常,这些状态码用来重定向,后续的请求地址(重定向目标)在本次响应的 Location 域中指明。
4xx 状态码:代表了客户端看起来可能发生了错误,妨碍了服务器的处理。
5xx /6xx状态码:代表了服务器在处理请求的过程中有错误或者异常状态发生,也有可能是服务器意识到以当前的软硬件资源无法完成对请求的处理。
常见状态码
200 OK | 请求已成功,请求所希望的响应头或数据体将随此响应返回。出现此状态码是表示正常状态 |
301 Moved Permanently | 被请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用本响应返回的若干个 URI 之一。 |
302 Move Temporarily | 请求的资源临时从不同的 URI响应请求。 |
303 See Other | 对应当前请求的响应可以在另一个 URL 上被找到,而且客户端应当采用 GET 的方式访问那个资源。 |
304 Not Modified | 如果客户端发送了一个带条件的 GET 请求且该请求已被允许,而文档的内容(自上次访问以来或者根据请求的条件)并没有改变,则服务器应当返回这个状态码。304响应禁止包含消息体,因此始终以消息头后的第一个空行结尾。 |
400 Bad Request | 语义有误,当前请求无法被服务器理解。除非进行修改,否则客户端不应该重复提交这个请求。 |
403 Forbidden | 服务器已经理解请求,但是拒绝执行它。 |
404 Not Found | 请求失败,请求所希望得到的资源未被在服务器上发现。 |
500 Internal Server Error | 服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理。一般来说,这个问题都会在服务器端的源代码出现错误时出现。 |
503 Service Unavailable | 由于临时的服务器维护或者过载,服务器当前无法处理请求。这个状况是临时的,并且将在一段时间以后恢复。 |
进程间通信的方式
1、消息队列是在两个不相关的进程之间传递数据的一种简单高效的方式,独立于发送进程和接受进程而存在。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。在内核中创建一队列,队列中每个元素是一个数据报,不同的进程可以通过句柄去访问这个队列;消息队列独立于发送与接收进程,可以通过顺序和消息类型读取,也可以fifo读取;消息队列可实现双向通信。
2、信号量是一种提供不同进程或者一个给定的不同线程之间同步的手段。它常作为一种锁机制,防止进程访问共享资源时,其他的进程也访问该资源。主要作为进程之间以及同一进程内的不同线程之间的同步手段。
3、共享内存是指在多个处理器的计算机中,可以被不同的中央处理器访问的大容量的内存。共享内存是最快的 IPC 方式,它是针对其他进程间通信方式运行效率低的问题专门设计的。它往往与其他通信机制配合使用,来实现进程间的同步通信。
将同一块物理内存一块映射到不同的进程的虚拟地址空间中,实现不同进程间对同一资源的共享。目前最快的IPC形式,不用从用户态到内核态的频繁切换和拷贝数据,直接从内存中读取就可以,共享内存是临界资源,所以需要操作时必须要保证原子性。使用信号量或者互斥锁都可以。
4、管道分为命名管道和无名管道,在内核中申请一块固定大小的缓冲区,程序拥有写入和读取的权利,都可以看成一种特殊的文件,具有固定的读端和写端,也可以使用普通的read、write 等函数。但是它不是普通的文件,并不属于其他任何文件系统,并且只存在于内存中;无名管道一般使用fork函数实现父子进程的通信,命名管道用于没有血缘关系的进程也可以进程间通信;面向字节流、自带同步互斥机制、半双工,单向通信,两个管道实现双向通信。
5、socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口,把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据。socket起源于UNIX,在Unix一切皆文件哲学的思想下,socket是一种”打开—读/写—关闭”模式的实现,服务器和客户端各自维护一个”文件”,在建立连接打开后,可以向自己文件写入内容供对方读取或者读取对方内容,通讯结束时关闭文件。是一种可以网间通信的方式。
字段属性
1. 字段名:字段的名称,用于标识该字段在表中的位置。
2. 数据类型:字段所存储的数据类型,例如整数、字符串、日期等。
3. 长度:字段所能存储的数据的最大长度,例如字符串的最大长度。
4. 精度:字段所能存储的数据的精度,例如小数的小数位数。
5. 是否为空:字段是否允许为空值。
6. 默认值:字段在没有输入值时所默认的值。
7. 主键:字段是否为表的主键,用于唯一标识表中的每一行数据。
8. 外键:字段是否为表的外键,用于与其他表建立关联关系。
9. 索引:字段是否需要建立索引,用于提高查询效率。
10. 唯一性约束:字段是否需要满足唯一性约束,用于保证该字段的值在表中唯一。
11. 检查约束:字段是否需要满足特定的条件,例如只能输入特定的值或范围内的值。
MySQL备份与还原
使用mysqldump命令备份
mysqldump -u <username> -p <databasename> > backup.sql
<username>
是数据库用户名,<databasename>
是要备份的数据库名称。执行命令后,将提示输入密码,然后备份文件 backup.sql
将包含数据库的结构和数据。
使用mysql命令还原
mysql -u <username> -p <databasename> < backup.sql
<username>
是数据库用户名,<databasename>
是要还原的数据库名称。执行命令后,将提示输入密码,并将备份文件 backup.sql
中的数据导入到指定的数据库中。
MySQL事务隔离机制级别
隔离级别 | 脏读 | 不可重复读 | 幻读 |
---|---|---|---|
读未提交(READ UNCOMMITTED) | 可能 | 可能 | 可能 |
读提交(READ COMMITTED) | 不可能 | 可能 | 可能 |
可重复读(REPEATABLE READ) | 不可能 | 不可能 | 可能 |
串行化(SERIALIZABLE) | 不可能 | 不可能 | 不可能 |