【Go】学习笔记
数据类型分类 值类型:基本数据类型是Go语言实际的原子,复合数据类型是由不同的方式组合基本类型构造出来的数据类型,如:数组,slice,map,结构体 整型 int8,uint # 基础类型之数字类型 浮点型 float32,float64 # 基础类型之数字类型 复数 # 基础类型之数字类型 布尔型 bool # 基础类型,只能存true/fal…
【TCP】为什么三次握手四次挥手
关于 TCP 三次握手四次挥手的过程已在 【网络通信】传输控制层 – TCP 协议介绍,这里将不再赘述。 TCP 连接到断开过程,如下图: 三次握手 TCP 的定位是全双工的、支持半关闭的、可靠的传输协议。但是,我们知道,网络信道是不可靠的,随时都有可能丢包、错包、乱序。TCP 怎么在不可靠的网络上实现可靠的传输协议呢? 对于丢包,TCP 的解决方…
【OSI】网络层 – IP 协议
网络层 - IP协议 网际协议(英语:Internet Protocol,缩写:IP;也称互联网协议)是用于分组交换数据网络的一种协议。 先来看一下本机的IP配置信息: vi /etc/sysconfig/network-scripts/ifcfg-eth0 ifcfg-eth0 : 其中的 if 表示interface 接口;cfg 表示conf…
【OSI】传输控制层 – TCP 协议
TCP 为了搞清楚TCP是什么,先来看一下它的定义: 传输 控制协议(英语:Transmission Control Protocol,缩写:TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协议。 注: 上图中的 connect()、listen()、write()、read()、close() 均是系统调用方法。 TCP三次握手 TCP …
【OSI】应用层 – HTTP 协议
谈到网络通信就不得不提下面两点: OSI 7 层参考模型 TCP/IP 协议 OSI 7 层参考模型 这只是个参考模型,具体实现的时候已将 表示层及会话层归纳到了 应用层。 TCP 协议就在传输控制层。 4层(或5层) 分层其实是软件工程学中常见的实现方式,因为分层具备解耦,每个层实现自己该办的事情。层与层之间只要接口稳定,层内的东西可以替换,可以…
【Redis】集群(七)集群转移-RedisShake及RedisFullCheck
1 手动迁移 结构一致 源集群与目标集群结构一致: 取消密码(有密码的话,建议取消密码) 创建与源集群结构一致的目标集群 先从后主停掉目标集群服务 删除目标集群所有节点的AOF和RDB文件 源集群数据持久化 复制源集群所有节点AOF文件到目标集群对应的节点 启动新集群并设置密码 检查状态,迁移完毕 结构不一致 如果源集群与目标集群结构不一致,可以把…
【Redis】集群(六)集群故障转移
1. 自动故障转移 1.1. 启动 Redis 节点 # node01 [root@node01 ~]# /usr/local/redis/bin/redis-server /usr/local/redis/cluster/conf/redis-6371.conf [root@node01 ~]# /usr/local/redis/bin/redi…
【Redis】集群(五)MOVED 转向与 ASK 转向
MOVED 转向 当我们使用操作 Redis 单节点的 Client 来操作集群时,比如使用以下方式登入客户端。 [root@node01 redis]# bin/redis-cli -a 123456 -h 192.168.1.54 -p 6374 Warning: Using a password with '-a' or …
【Redis】集群(四)节点管理与插槽管理
在运行的集群状态下动态地添加节点与删除节点。Redis Cluster 的哈希槽总数 16384 个是不会变的。 如果要新加一个节点,就得重新分片,即就是新增一个节点就得把原有节点上的槽拿出去分配给新增的节点; 如果要删除一个节点,如果是从节点那非常简单,如果是主节点那就得把这个主节点上的槽转移到其他可用的主节点上去,然后再把它删掉。 1. 添加主…
【Linux】内核态后端调试神器strace
strace常用来跟踪进程执行时的系统调用和所接收的信号。 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核态模式,通过系统调用访问硬件设备。strace可以跟踪到一个进程产生的系统调用,包括参数,返回值,执行消耗的时间。 参数说明 -c 统计每一系统调用的所执行…