自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 收藏
  • 关注

转载 Nginx 实用配置

1 防盗链相关配置:valid_refererslocation ~* \.(gif|jpg|png)$ { # 只允许 192.168.0.1 请求资源 valid_referers none blocked 192.168.0.1; if ($invalid_referer) { rewrite ^/ http://$host/logo...

2019-09-04 09:45:00 140

转载 跟着大彬读源码 - Redis 10 - 对象编码之整数集合

目录 1 整数集合的实现 2 升级操作 3 升级优势 4 交、并、差集算法 5 总结 整数集合是 Redis 集合键的底层实现之一。当一个集合只包含整数值元素,并且元素数量不多时,Redis 就会使用整数集合作为集合键的底层实现。1 整数集...

2019-08-12 11:14:00 137

转载 跟着大彬读源码 - Redis 9 - 对象编码之 三种list

目录 1 ziplist 2 skiplist 3 quicklist 总结 Redis 底层使用了 ziplist、skiplist 和 quicklist 三种 list 结构来实现相关对象。顾名思义,ziplist 更节省空间、skiplist 则注重...

2019-08-07 09:53:00 149

转载 跟着大彬读源码 - Redis 8 - 对象编码之字典

目录 1 字典的实现 2 插入算法 3 rehash 与 渐进式 rehash 总结 字典,是一种用于保存键值对的抽象数据结构。由于 C 语言没有内置字典这种数据结构,因此 Redis 构建了自己的字典实现。在 Redis 中,就是使用字典来实现数据库底层...

2019-08-05 09:56:00 106

转载 跟着大彬读源码 - Redis 7 - 对象编码之简单动态字符串

目录 1 SDS 的定义 2 SDS 对比 C 字符串有哪些优势 总结 Redis 没有直接使用 C 语言传统的字符串表示(以空字符串结尾的字符数组),而是构建了一种名为简单动态字符串(simple dynamic string)的抽象类型,并将 SDS 用作 Redis ...

2019-07-29 09:51:00 108

转载 跟着大彬读源码 - Redis 6 - 对象和数据类型(下)

目录 1 哈希对象 2 集合对象 3 有序集合对象 总结 继续撸我们的对象和数据类型。上节我们一起认识了字符串和列表,接下来还有哈希、集合和有序集合。1 哈希对象哈希对象的可选编码分别是:ziplist 和 hashtable。1.1 ziplist...

2019-07-24 09:55:00 110

转载 跟着大彬读源码 - Redis 5 - 对象和数据类型(上)

目录 1 对象 2 字符串对象 3 列表对象 总结 相信很多人应该都知道 Redis 有五种数据类型:字符串、列表、哈希、集合和有序集合。但这五种数据类型是什么含义?Redis 的数据又是怎样存储的?今天我们一起来认识下 Redis 这五种数据结构的含义及其...

2019-07-22 09:55:00 109

转载 跟着大彬读源码 - Redis 4 - 服务器的事件驱动有什么含义?

目录 1 文件事件 2 时间事件 3 事件调度与执行 总结 众所周知,Redis 服务器是一个事件驱动程序。那么事件驱动对于 Redis 而言有什么含义?源码中又是如何实现事件驱动的呢?今天,我们一起来认识下 Redis 服务器的事件驱动。对于 Redis...

2019-07-17 09:51:00 107

转载 跟着大彬读源码 - Redis 3 - 服务器如何响应客户端请求?(下)

目录 1 服务器处理 2 客户端接收并打印回复 总结 继续我们上一节的讨论。服务器启动了,客户端也发送命令了。接下来,就要到服务器“表演”的时刻了。1 服务器处理服务器读取到命令请求后,会进行一系列的处理。1.1 读取命令请求当客户端与服务器之间的套接字因客户端的写...

2019-07-15 10:14:00 119

转载 跟着大彬读源码 - Redis 2 - 服务器如何响应客户端请求?(上)

目录 1 连接服务器 2 发送命令请求 上次我们通过问题“启动服务器,程序都干了什么?”,跟着源码,深入了解了 Redis 服务器的启动过程。既然启动了 Redis 服务器,那我们就要连上 Redis 服务干些事情。这里我们可以通过 redis-cli 测试。现在客户端和服务器都准备好...

2019-07-10 09:58:00 141

转载 跟着大彬读源码 - Redis 1 - 启动服务,程序都干了什么?

目录 1 搭建 debug 环境 2 初始化服务 3 初始化详细解读 4 其它操作 5 gdb 基础使用 总结 一直很羡慕那些能读 Redis 源码的童鞋,也一直想自己解读一遍,但迫于 C 大魔王的压力,解读日期遥遥无期。相...

2019-07-08 09:59:00 144

转载 MySQL - 高可用性:少宕机即高可用?

我们之前了解了复制、扩展性,接下来就让我们来了解可用性。归根到底,高可用性就意味着 "更少的宕机时间"。老规矩,讨论一个名词,首先要给它下个定义,那么什么是可用性?1 什么是可用性我们常见的可用性通常以百分比表示,这本身就有其隐藏的意味:高可用性不是绝对的。换句话说,100% 的可用性是不可能达到的。没错,这里可以这么肯定的说。我们一般用 “9” 的个数来描述可用性。X个9表示在...

2019-04-29 09:43:00 81

转载 MySQL - 扩展性 3 负载均衡:眼花缭乱迷人眼

负载均衡的基本思路很简单:在一个服务器集群中尽可能地的平均负载量。基于这个思路,我们通常的做法是在服务器前端设置一个负载均衡器。负载均衡器的作用是将请求的连接路由到最空闲的可用服务器上。如图 1,显示了一个大型网站负载均衡设置。其中一个负责 HTTP 流量,另一个用于 MySQL 访问。负载均衡有五个常见目的:可扩展性。负载均衡对某些扩展很有帮助,比如读写分离时从备库读数...

2019-04-24 09:35:00 78

转载 MySQL - 扩展性 2 扩展策略:氪金氪脑任君选

如果将应用的所有数据简单地放在一台 MySQL 服务器实例上,就不用谈什么扩展性了。但是业务能稳定持续的增长,那么应用肯定会碰到性能瓶颈。对于很多类型的应用而言,购买更高性能的机器能解决一大部分性能问题,这也是我们常说的 “垂直扩展” 或者 “向上扩展”。另一个与之相反的方法是将任务分配的多台机器上,这通常被称为 “水平扩展” 或者 “向外扩展”。接下来,我们将讨论如何联合使用向上...

2019-04-22 10:26:00 121

转载 MySQL - 扩展性 1 概述:人多未必力量大

我们应该接触过或者听说过数据库的性能瓶颈问题。对于一个单机应用而言,提升数据库性能的最快路径就是氪金 - 买更高性能的数据库服务器,只要钱到位,性能不是问题。但是当系统性能增加到一定地步时,你会发现,原先花 3000 块提升了 50% 的性能,现在花 30000 块,才提升了不到 10%。也就是说,我们花了钱,但没有得到等价的性能提升,这个时候,我们就要考虑数据库的可扩展性了。要讨...

2019-04-17 10:04:00 77

转载 MySQL 复制 - 性能与扩展性的基石 4:主备切换

一旦使用 MySQL 的复制功能,就很大可能会碰到主备切换的情况。也许是为了迭代升级服务器,或者是主库出现问题时,将一台备库转换成主库,或者只是希望重新分配容量。不过出于什么原因,都需要将新主库的信息告诉其它备库。对于主备切换,如果是计划内的操作,较为容易(至少比紧急情况下容易)。只需在备库简单的使用 CHANGE MASTER TO 命令,并指定合适的值即可。而且大多数的值是可选的,...

2019-04-15 09:40:00 59

转载 MySQL 复制 - 性能与扩展性的基石 3:常见问题及解决方案

主备复制过程中有很大可能会出现各种问题,接下来我们就讨论一些比较普遍的问题,以及当遇到这些问题时,如何解决或者预防问题发生。1 数据损坏或丢失问题描述:服务器崩溃、断电、磁盘损坏、内存或网络错误等问题,导致数据损坏或丢失。问题原因:非正常关机导致没有把数据及时的写入硬盘。这种问题,一般可以分为几种情况导致:1.1 主库意外关闭问题未发生,避免方案:设置主库的 sync_bin...

2019-04-08 10:04:00 63

转载 MySQL 复制 - 性能与扩展性的基石 2:部署及其配置

正所谓理论造航母,现实小帆船。单有理论,不动手实践,学到的知识犹如空中楼阁。接下来,我们一起来看下如何一步步进行 MySQL Replication 的配置。为 MySQL 服务器配置复制非常简单。但由于场景不同,基本的步骤还是有所差异。最基本的场景是新安装主库和备库,总得来说分为以下几步:在每台服务器上创建复制账号。配置主库和备库。通知备库连接到主库并从主库复制数据。此...

2019-04-03 09:37:00 64

转载 MySQL 复制 - 性能与扩展性的基石 1:概述及其原理

1. 复制概述MySQL 内置的复制功能是构建基于 MySQL 的大规模、高性能应用的基础,复制解决的基本问题是让一台服务器的数据与其他服务器保持同步。接下来,我们将从复制概述及原理、复制的配置、常见的问题及解决方法来学习 MySQL 的复制功能。1.1 复制解决的问题下面是复制常见的用途:数据分布。Mysql 复制通常不会对带宽造成很大压力,但在 5.1 版本中引入的基于行...

2019-04-01 09:48:00 58

转载 网络协议 终章 - GTP 协议:复杂的移动网络

    前面都是讲电脑上网的情景,今天我们就来认识下使用最多的移动网络上网场景。移动网络的发展历程    你一定知道手机上网有 2G、3G、4G 的说法,究竟这都是什么意思呢?有一个通俗的说法就是:用 2G 看 txt,用 3G 看 jpg,用 4G 看 avi。2G 网络    手机本来是用来打电话的,不是用来上网的,所以原来在 2G 时代,上网使用的不是 IP 网络,而是电话...

2019-01-21 12:49:00 359

转载 网络协议 22 - RPC 协议(下)- 二进制类 RPC 协议

    前面我们认识了两个常用文本类的 RPC 协议,对于陌生人之间的沟通,用 NBA、CBA 这样的缩略语,会使得协议约定非常不方便。    在讲 CDN 和 DNS 的时候,我们讲过接入层的设计,对于静态资源或者动态资源静态化的部分都可以做缓存。但是对于下单、支付等交易场景,还是需要调用 API。    对于微服务的架构,API 需要一个 API 网关统一的管理。API 网关有多...

2019-01-16 10:07:00 327

转载 网络协议 21 - RPC 协议(中)- 基于 JSON 的 RESTful 接口协议

    上一节我们了解了基于 XML 的 SOAP 协议,SOAP 的 S 是啥意思来着?是 Simple,但是好像一点儿都不简单啊!传输协议问题    对于 SOAP 来讲,比如我创建一个订单,用 POST,在 XML 里面写明动作是 CreateOrder;删除一个订单,还是用 POST,在 XML 里面写明了动作是 DeleteOrder。其实创建订单完全可以使用 POST 动...

2019-01-14 10:06:00 124

转载 网络协议 20 - RPC 协议(上)- 基于XML的SOAP协议

【前五篇】系列文章传送门:网络协议 15 - P2P 协议:小种子大学问网络协议 16 - DNS 协议:网络世界的地址簿网络协议 17 - HTTPDNS:私人定制的 DNS 服务网络协议 18 - CDN:家门口的小卖铺网络协议 19 - RPC 协议综述:远在天边,近在眼前    上一节我们了解 RPC 的经典模型和设计要点,并用最早期的 ONC RPC 为例子,...

2019-01-09 10:02:00 179

转载 网络协议 19 - RPC协议综述:远在天边近在眼前

【前五篇】系列文章传送门:网络协议 14 - 流媒体协议:要说爱你不容易网络协议 15 - P2P 协议:小种子大学问网络协议 16 - DNS 协议:网络世界的地址簿网络协议 17 - HTTPDNS:私人定制的 DNS 服务网络协议 18 - CDN:家门口的小卖铺    这几年微服务很火,想必各位博友或多或少的都接触过。微服务概念中,各服务间的相互调用是不可或缺...

2019-01-07 09:54:00 85

转载 网络协议 18 - CDN:家门口的小卖铺

【前五篇】系列文章传送门:网络协议 13 - HTTPS 协议:加密路上无尽头网络协议 14 - 流媒体协议:要说爱你不容易网络协议 15 - P2P 协议:小种子大学问网络协议 16 - DNS 协议:网络世界的地址簿网络协议 17 - HTTPDNS:私人定制的 DNS 服务    到现在为止,我们基本上已经了解了网络协议中的大部分常用协议,对于整个 HTTP 请求...

2019-01-02 09:53:00 114

转载 网络协议 17 - HTTPDNS:私人定制的 DNS 服务

【前五篇】系列文章传送门:网络协议 12 - HTTP 协议:常用而不简单网络协议 13 - HTTPS 协议:加密路上无尽头网络协议 14 - 流媒体协议:要说爱你不容易网络协议 15 - P2P 协议:小种子大学问网络协议 16 - DNS 协议:网络世界的地址簿    全球统一的 DNS 是很权威,但是我们都知道“适合自己的,才是最好的”。很多时候,标准统一化的 ...

2018-12-31 10:27:00 173

转载 网络协议 16 - DNS 协议:网络世界的地址簿

【前五篇】系列文章传送门:网络协议 11 - Socket 编程(下):眼见为实耳听为虚网络协议 12 - HTTP 协议:常用而不简单网络协议 13 - HTTPS 协议:加密路上无尽头网络协议 14 - 流媒体协议:要说爱你不容易网络协议 15 - DNS 协议:网络世界的地址簿    为什么在地址栏输入域名,就能直接访问到对应服务器?全局负载均衡和内部负载均衡又是...

2018-12-26 10:03:00 119

转载 网络协议 15 - P2P 协议:小种子大学问

【前五篇】系列文章传送门:网络协议 10 - Socket 编程(上):实践是检验真理的唯一标准网络协议 11 - Socket 编程(下):眼见为实耳听为虚网络协议 12 - HTTP 协议:常用而不简单网络协议 13 - HTTPS 协议:加密路上无尽头网络协议 14 - 流媒体协议:要说爱你不容易    “兄弟,有种子吗?”    “什么种子?小麦种吗?”  ...

2018-12-24 09:53:00 486

转载 网络协议 14 - 流媒体协议:要说爱你不容易

【前五篇】系列文章传送门:网络协议 9 - TCP协议(下):聪明反被聪明误网络协议 10 - Socket 编程(上):实践是检验真理的唯一标准网络协议 11 - Socket 编程(下):眼见为实耳听为虚网络协议 12 - HTTP 协议:常用而不简单网络协议 13 - HTTPS 协议:加密路上无尽头    大家都会关注“在浏览器输入一个地址,然后回车,会发生什么...

2018-12-19 10:09:00 117

转载 网络协议 13 - HTTPS 协议:加密路上无尽头

系列文章传送门:网络协议 1 - 概述网络协议 2 - IP 是怎么来,又是怎么没的?网络协议 3 - 从物理层到 MAC 层网络协议 4 - 交换机与 VLAN:办公室太复杂,我要回学校网络协议 5 - ICMP 与 ping:投石问路的侦察兵网络协议 6 - 路由协议:敢问路在何方?网络协议 7 - UDP 协议:性善碰到城会玩网络协议 8 - TCP 协议(上):...

2018-12-17 10:43:00 128

转载 网络协议 12 - HTTP 协议:常用而不简单

系列文章传送门:网络协议 1 - 概述网络协议 2 - IP 是怎么来,又是怎么没的?网络协议 3 - 从物理层到 MAC 层网络协议 4 - 交换机与 VLAN:办公室太复杂,我要回学校网络协议 5 - ICMP 与 ping:投石问路的侦察兵网络协议 6 - 路由协议:敢问路在何方?网络协议 7 - UDP 协议:性善碰到城会玩网络协议 8 - TCP 协议(上):...

2018-12-12 09:53:00 168

转载 网络协议 11 - Socket 编程(下):眼见为实耳听为虚

系列文章传送门:网络协议 1 - 概述网络协议 2 - IP 是怎么来,又是怎么没的?网络协议 3 - 从物理层到 MAC 层网络协议 4 - 交换机与 VLAN:办公室太复杂,我要回学校网络协议 5 - ICMP 与 ping:投石问路的侦察兵网络协议 6 - 路由协议:敢问路在何方?网络协议 7 - UDP 协议:性善碰到城会玩网络协议 8 - TCP 协议(上):...

2018-12-10 10:08:00 86

转载 网络协议 10 - Socket 编程(上):实践是检验真理的唯一标准

系列文章传送门:网络协议 1 - 概述网络协议 2 - IP 是怎么来,又是怎么没的?网络协议 3 - 从物理层到 MAC 层网络协议 4 - 交换机与 VLAN:办公室太复杂,我要回学校网络协议 5 - ICMP 与 ping:投石问路的侦察兵网络协议 6 - 路由协议:敢问路在何方?网络协议 7 - UDP 协议:性善碰到城会玩网络协议 8 - TCP 协议(上):...

2018-12-05 10:06:00 178

转载 网络协议 9 - TCP协议(下):聪明反被聪明误

网络协议 1 - 概述网络协议 2 - IP 是怎么来,又是怎么没的?网络协议 3 - 从物理层到 MAC 层网络协议 4 - 交换机与 VLAN:办公室太复杂,我要回学校网络协议 5 - ICMP 与 ping:投石问路的侦察兵网络协议 6 - 路由协议:敢问路在何方?网络协议 7 - UDP 协议:性善碰到城会玩网络协议 8 - TCP 协议(上):性恶就要套路深...

2018-12-03 09:30:00 202

转载 网络协议 8 - TCP协议(上):性恶就要套路深

系列文章:网络协议 1 - 概述网络协议 2 - IP 是怎么来,又是怎么没的?网络协议 3 - 从物理层到 MAC 层网络协议 4 - 交换机与 VLAN:办公室太复杂,我要回学校网络协议 5 - ICMP 与 ping:投石问路的侦察兵网络协议 6 - 路由协议:敢问路在何方?网络协议 7 - UDP 协议:性善碰到城会玩    上次说了“性本善”的 UDP 协...

2018-11-28 09:59:00 229

转载 网络协议 7 - UDP 协议:性善碰到城会玩

    网络协议五步登天路,我们一路迈过了物理层、链路层,今天终于到了传输层。从这一层开始,很多知识应该都是服务端开发必备的知识了,今天我们就一起来梳理下。    其实,讲到 UDP,就少不了 TCP。这俩货简直就是个“连体兄弟”,只要出现一个,另一个肯定就在不远处等着你。    博主相信,绝大多数的服务端开发都碰到过“TCP 与 UDP 的区别”这样的面试题,而在实际业务开发中,也...

2018-11-26 10:06:00 67

转载 网络协议 6 - 路由协议:敢问路在何方?

    前面例子中,我们都是在一个局域网内折腾。今天就让我们扩大范围,在多个局域网甚至到广阔的互联网世界中遨游,看看这中间会发生什么。    这个过程中,跨网关访问是我们要了解的第一个内容。跨网关访问    当我们要了解跨网关访问时,就牵扯到 MAC 地址和 IP 地址的变化,因此,我们先来看下 MAC 头和 IP 头的细节。MAC 头和IP 头的细节    如图,在 MAC...

2018-11-21 10:05:00 70

转载 PHP 扩展管理

一直对 PHP 扩展了解的似是而非,每次安装扩展都要百度教程,很容易出现各种错误。所幸整理下管理扩展的所有操作,方便日后操作。查看已加载的扩展输出 phpinfo();使用 get_loaded_extensions();使用 extension_loaded(string name) 函数检查是否加载指定扩展;php -mWindows 安装扩展扩展包地址:http...

2018-11-20 18:47:00 83

转载 网络协议 5 - ICMP 与 ping:投石问路的侦察兵

    日常开发中,我们经常会碰到查询网络是否畅通以及域名对应 IP 地址等小需求,这时候用的最多的应该就是 ping 命令了。 那你知道 ping 命令是怎么工作的吗?今天,我们就来一起认识下 ping 命令及其对应的 ICMP 协议。ICMP 协议    ICMP 全称 Internet Control Message Protocol,指互联网控制报文协议。    网络本身是...

2018-11-19 09:54:00 162

转载 网络协议 4 - 交换机与 VLAN:办公室太复杂,我要回学校

    上一次,我们通过宿舍联网打魔兽的需求,认识了如何通过物理层和链路层组建一个宿舍局域网。今天,让我们切换到稍微复杂点的场景,办公室。    在这个场景里,就不像在宿舍那样,搞几根网线,拉一拉,扯一扯就可以了。一个办公室少到数十人,大至上百人,每个人都有一个网口,如果再算上整个楼层楼层、甚至整栋楼,这个网口就更多了。    类似办公室这样,这些复杂场景的网络布线就牵扯出一个专业名...

2018-11-14 09:52:00 311

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除