服务器类型

redis架构详解

柔情痞子 提交于 2019-12-23 09:18:13
一、redis特性 1.redis 是什么? redis是基于内存的可持久化的key-value数据库 2.redis数据结构类型? value支持五种数据类型,字符串、字符串列表、字符串集合、有序集合、hashs 3.redis持久存储方式 redis两种持久化方式,RDB,和AOF RDB: 将某一时刻的数据持久化到磁盘上,是一种快照式的持久方式, redis在进行持久化的过程中,会先将数据写入临时文件中,待持久化过程结束,会用这个临时文件,替换上次持久化的文件,正是这种特性,让我们可以随时来进行备份,因为快照文件总是完整可用的。 原理:rdb方式持久化时,redis会fork出一个子进程进行持久化,主进程不会进行任何io操作,确保redis性能不会因持久化而降低,如果对数据不敏感且需要大规模恢复数据,可以使用这种方式 AOF: 将执行过的写指令记录下来,在数据恢复时,将指令按照顺序在执行一边. 我们通过配置redis.conf中的appendonly yes就可以打开AOF功能.如果有写操作,就会追加到aof文件末尾,默认aof持久化策略是每秒钟fsync一次将数据从缓存区域刷到磁盘上,因为在这种情况下,redis仍然可以保持很好的处理性能,即使redis故障,也只会丢失最近1秒钟的数据. 问题1: aof文件坏了怎么办? 备份被写坏的AOF文件 运行redis-check

socket编程中服务器端常用函数 以及简单实现

爷,独闯天下 提交于 2019-12-23 03:45:12
1 常用函数 1.1 connect() int connect(int sockfd, const struct sockaddr *servaddr, socklen_taddrlen);   客户端需要调用connect()连接服务器,connect和bind的参数形式一致,区别在于bind的参数是自己的地址,而connect的参数是对方的地址。connect()成功返回0,出错返回-1,程序会阻塞。 1.2 bind():很少用   由于客户端不需要固定的端口号,因此不必调用bind(),客户端的端口号由内核自动分配。注意,客户端不是不允许调用bind(),只是没有必要调用bind()固定一个端口号,服务器也不是必须调用bind(),但如果服务器不调用bind(),内核会自动给服务器分配监听端口,每次启动服务器时端口号都不一样,客户端要连接服务器就会遇到麻烦。 2 客户端的简单实现(C语言) 功能:连接到服务器后,如果服务器发送数据,则返回服务器发送的数据 unsigned char TcpRecvBuf[1520] /* 缓存区,完整的以太帧最大也就1520或1518字节,如果去掉协议部分则可以更小 */ static void Task_TCP_Client (void *pdata) { struct sockaddr_in server, client; int

HTTP请求流程你了解了么?

萝らか妹 提交于 2019-12-22 22:52:14
预备知识 前文没有描述到传输和协议直接的层级对应关系,大概补充下网络通信中数据传输对应的协议,首先了解下OSI(开放式系统互联:Open System InterConnection)七层 模式,及其对应不同层次的协议。 OSI体系结构 TCP/IP相关协议结构 应用层 HTTP,Telnet,FTP等 表示层 会话层 传输层 TCP,UDP 网络层 IP 数据链路层 物理层 了解到HTTP协议是建立在TCP连接基础之上的。 HTTP 是一种允许浏览器向服务器获取资源的协议,是 Web 的基础 ,通常由浏览器发起请求,用来获取不同类型的文件, 例如 HTML 文件、CSS 文件、JavaScript 文件、图片、视频等。此外,HTTP 也是浏览器使用最广的协议。 我们对HTTP不太了解的话都会存在这样的疑惑,为什么再次访问同一站点会比第一次快,登录过一次后的网站再次访问就处于登录状态等,我们 通过对HTTP请求过程的剖析来解开这些谜团。 浏览器端发起 HTTP 请求流程 浏览器输入网址: http://time.geekbang.org/index.html,之后会完成什么步骤呢 ? 1、构建请求 首先,浏览器构建 请求行 信息,构建好后,浏览器准备发起网络请求。 GET /index.html HTTP1.1 2、查找缓存 在真正发起网络请求之前

Apache 、Nginx 、Squid 的区别

醉酒当歌 提交于 2019-12-22 22:20:56
一、Apache: Apache 是一个优秀的开放源码的网页服务器,第一款web服务器端软件。但对于那些需要更强大的Web应用服务器(比如大小、可定制、响应速度、可扩展性等方面)的人而言,Apache明显不符合他们的要求,同类替代软件有Lighttpd,Nginx,kangle,Boa,Jigsaw等。 二、Squid: Squid是一个缓存Internet 数据的软件,其接收用户的下载申请,并自动处理所下载的数据。当一个用户想要下载一个主页时,可以向Squid 发出一个申请,要Squid 代替其进行下载,然后Squid 连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户申请同样的页面时,Squid 把保存的备份立即传给用户,使用户觉得速度相当快。Squid 可以代理HTTP、FTP、GOPHER、SSL和WAIS等协议并且Squid 可以自动地进行处理,可以根据自己的需要设置Squid,使之过滤掉不想要的东西。 (1)工作流程 当代理服务器中有客户端需要的数据时: 客户端向代理服务器发送数据请求; 代理服务器检查自己的数据缓存; 代理服务器在缓存中找到了用户想要的数据,取出数据; 代理服务器将从缓存中取得的数据返回给客户端。 当代理服务器中没有客户端需要的数据时: 客户端向代理服务器发送数据请求; 代理服务器检查自己的数据缓存;

HTTP状态码一览表(HTTP Status Code)

孤人 提交于 2019-12-22 20:31:06
1xx(临时响应) 表示临时响应并需要请求者继续执行操作的状态代码。 代码 说明 100 (继续) 请求者应当继续提出请求。 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。 101 (切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换。 2xx (成功) 表示成功处理了请求的状态代码。 代码 说明 200 (成功) 服务器已成功处理了请求。 通常,这表示服务器提供了请求的网页。 201 (已创建) 请求成功并且服务器创建了新的资源。 202 (已接受) 服务器已接受请求,但尚未处理。 203 (非授权信息) 服务器已成功处理了请求,但返回的信息可能来自另一来源。 204 (无内容) 服务器成功处理了请求,但没有返回任何内容。 205 (重置内容) 服务器成功处理了请求,但没有返回任何内容。 206 (部分内容) 服务器成功处理了部分 GET 请求。 3xx (重定向) 表示要完成请求,需要进一步操作。 通常,这些状态代码用来重定向。 代码 说明 300 (多种选择) 针对请求,服务器可执行多种操作。 服务器可根据请求者 (user agent) 选择一项操作,或提供操作列表供请求者选择。 301 (永久移动) 请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。 302 (临时移动)

HTTP状态码一览表(HTTP Status Code)

≯℡__Kan透↙ 提交于 2019-12-22 20:30:10
200 - 服务器成功返回网页 404 - 请求的网页不存在 503 - 服务不可用 1xx(临时响应) 表示临时响应并需要请求者继续执行操作的状态代码。 代码 说明 100 (继续) 请求者应当继续提出请求。 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。 101 (切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换。 2xx (成功) 表示成功处理了请求的状态代码。 代码 说明 200 (成功) 服务器已成功处理了请求。 通常,这表示服务器提供了请求的网页。 201 (已创建) 请求成功并且服务器创建了新的资源。 202 (已接受) 服务器已接受请求,但尚未处理。 203 (非授权信息) 服务器已成功处理了请求,但返回的信息可能来自另一来源。 204 (无内容) 服务器成功处理了请求,但没有返回任何内容。 205 (重置内容) 服务器成功处理了请求,但没有返回任何内容。 206 (部分内容) 服务器成功处理了部分 GET 请求。 3xx (重定向) 表示要完成请求,需要进一步操作。 通常,这些状态代码用来重定向。 代码 说明 300 (多种选择) 针对请求,服务器可执行多种操作。 服务器可根据请求者 (user agent) 选择一项操作,或提供操作列表供请求者选择。 301 (永久移动) 请求的网页已永久移动到新位置。 服务器返回此响应(对 GET

http服务器返回状态代码含义

最后都变了- 提交于 2019-12-22 20:28:30
100 - 表示已收到请求的一部分,正在继续发送余下部分。   101 - 切换协议。   2xx - 成功。服务器成功地接受了客户端请求:   200 - 确定。客户端请求已成功。   201 - 已创建。   202 - 已接受。   203 - 非权威性信息。   204 - 无内容。   205 - 重置内容。   206 - 部分内容。   300 - 针对收到请求,服务器可执行多种操作。   301 - 永久移动转移,请求的内容已永久移动其他新位置。 302 - 临时移动转移,请求的内容已临时移动新的位置。   304 - 未修改。自从上次请求后,请求的内容未修改过。   307 - 临时重定向。服务器目前从不同位置响应请求,但请求者应继续使用原有位置来进行以后的请求。   400 - 错误的请求。   401 - 访问被拒绝。IIS 定义了许多不同的 401 错误,它们指明更为具体的错误原因。这些具体的错误代码在浏览器中显示,但不在 IIS 日志中显示:   401.1 - 登录失败。   401.2 - 服务器配置导致登录失败。   401.3 - 由于 ACL 对资源的限制而未获得授权。   401.4 - 筛选器授权失败。   401.5 - ISAPI/CGI 应用程序授权失败。   401.7 - 访问被 Web 服务器上的 URL 授权策略拒绝

SSL与TLS的区别以及介绍

爱⌒轻易说出口 提交于 2019-12-22 14:10:22
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> SSL:(Secure Socket Layer,安全套接字层),位于可靠的面向连接的网络层协议和应用层协议之间的一种协议层。SSL通过互相认证、使用数字签名确保完整性、使用加密确保私密性,以实现客户端和服务器之间的安全通讯。该协议由两层组成:SSL记录协议和SSL握手协议。   TLS:(Transport Layer Security,传输层安全协议),用于两个应用程序之间提供保密性和数据完整性。该协议由两层组成:TLS记录协议和TLS握手协议。   SSL是Netscape开发的专门用户保护Web通讯的,目前版本为3.0。最新版本的TLS 1.0是IETF(工程任务组)制定的一种新的协议,它建立在SSL 3.0协议规范之上,是SSL 3.0的后续版本。两者差别极小,可以理解为SSL 3.1,它是写入了RFC的。   SSL (Secure Socket Layer)   为Netscape所研发,用以保障在Internet上数据传输之安全,利用数据加密(Encryption)技术,可确保数据在网络上之传输过程中不会被截取。目前一般通用之规格为40 bit之安全标准,美国则已推出128 bit之更高安全标准,但限制出境。只要3.0版本以上之I.E.或Netscape浏览器即可支持SSL。   当前版本为3

SQL server概述

丶灬走出姿态 提交于 2019-12-22 00:59:28
sqlserver中包含的对象: 数据库 、 事务日志 、 索引 、 文件组 、 数据库关系图 、 视图 、 存储过程 、 用户自定义函数 、 用户 、 角色 、 程序集 、 表 、 报表 、 全文目录 、 用户自定义数据类型 数据库实际上是最高层对象,其他对象皆为其子对象 1.安装好的sqlserver中包含的系统数据库:       master数据库保存一组特殊的表(系统表)用于系统的总体控制(不可删除)       model数据库是一个模型数据库,在新建数据库的时候可以以此为模型(不可删除)       msdb是SQLAgent进程储存任意系统任务的地方,例如计划为数据库每天备份       tempdb是服务器的主要工作区域之一,在执行一些复杂或大型的查询任务时,需要创建中间表来完成,而这个表的创建是在tempdb中完成的 2.事务日志 http://www.cnblogs.com/CareySon/archive/2012/02/13/2349751.html 什么是事物日志?     1)事务日志文件Transaction Log File是用来记录数据库更新情况的文件,扩展名为ldf    2)SQL SERVER利用事务日志来确保持久性(Durability)和事务回滚(Rollback)。事务日志文件有什么用??在数据库进行了误操作使得数据库数据丢失时

LVS

僤鯓⒐⒋嵵緔 提交于 2019-12-21 19:19:54
一,LVS功能详解 1.1 LVS(Linux Virtual Server)介绍 LVS是Linux Virtual Server 的简写(也叫做IPVS),意即Linux虚拟服务器,是一个虚拟的服务器集群系统,可以在UNIX/LINUX平台下实现负载均衡集群功能。 1.2 企业网站LVS集群架构图 1.3 IPVS软件工作层次图 从上图我们看出,LVS负载均衡调度技术是在Linux内核中实现的,因此,被称之为Linux虚拟服务器(Linux Virtual Server)。我们使用该软件配置LVS时候,不能直接配置内核中的ipbs,而需要使用ipvs管理工具ipvsadm进行管理,或者通过Keepalived软件直接管理ipvs。 1.4 LVS体系结构与工作原理简单描述 LVS集群负载均衡器接受服务的所有入站客户端计算机请求,并根据调度算法决定哪个集群节点应该处理回复请求。负载均衡器(简称LB)有时也被称为LVS Director(简称Director)。 LVS虚拟服务器的体系结构如下图所示,一组服务器通过高速的局域网或者地理分布的广域网相互连接,在他们的前端有一个负载调度器(Load Balancer)。 负载调度器能无缝地将网络请求调度到真实服务器上,从而使得服务器集群的结构对客户是透明的,客户访问集群系统提供的网络服务就像访问一台高性能,高可用的服务器一样