偏移量

jquery的offset().top与javascript的offsetTop区别?

放肆的年华 提交于 2019-11-29 05:47:02
offset().top是jquery的方法,需引入jquery,它获取你绑定元素上边框 相对于html上边界 的 偏移量 offsetTop是原生js的方法,它获取你绑定元素上边框相对于离自己最近且position属性为非static的祖先元素的偏移量 区别一:offset().top与offsetTop偏移量参照对象不同,offset().top始终是html,而offsetTop相对于其祖先position 的 来源: https://www.cnblogs.com/sjzgk/p/11365200.html

6.主从复制

断了今生、忘了曾经 提交于 2019-11-28 18:42:56
作者 微信:tangy8080 电子邮箱:914661180@qq.com 更新时间:2019-08-26 20:53:04 星期一 欢迎您订阅和分享我的订阅号,订阅号内会不定期分享一些我自己学习过程中的编写的文章 如您在阅读过程中发现文章错误,可添加我的微信 tangy8080 进行反馈.感谢您的支持。 文章主题 了解Redis主从复制的过程 主从复制则侧重解决数据的多机热备,主从复制是实现负载均衡和故障恢复的基础 前置条件 [无] 正文 概述 在分布式系统中为了解决单点问题,通常会把数据复制多个副本部署到 其他机器,满足故障恢复和负载均衡等需求。Redis也是如此,它为我们提供了复制功能,实现了相同数据的多个Redis副本。复制功能是高可用Redis的基础,哨兵和集群都是在复制的基础上实现高可用的。 参与复制的Redis实例划分为主节点(master)和从节点(slave)。默认 情况下,Redis都是主节点。每个从节点只能有一个主节点,而主节点可以同时具有多个从节点。复制的数据流是单向的,只能由主节点复制到从节点 主从复制的配置 二进制方式安装下的配置 在配置文件中加入slaveof{masterHost}{masterPort}随Redis启动生效。 在redis-server启动命令后加入--slaveof{masterHost}{masterPort}生效。

关于滑动验证的思路构思

久未见 提交于 2019-11-28 17:42:19
1.服务端生成水平偏移量,缓存到session 中。 2.根据偏移量生成滑动控件,一张底图图,一张处理过的淡色图压在底图上,封装成弹出控件,淡色图left坐标即是水平偏移量。 3.制作滑动功能,获取滑动坐标值发送到服务器进行匹配。 4.服务器返回匹配结果进行登录判断。 来源: https://www.cnblogs.com/wiggin-Z/p/11417072.html

结构体的大小

家住魔仙堡 提交于 2019-11-28 17:25:06
1字节是8位,一般32位机子上各个数据类型所占的存储空间如下: char:8位 short:16位 int:32位 long:32位 unsigned long:32位 long long:64位 float:32位 double:64位 long double:64位 指针:32位 64位机器上各个数据类型所占的存储空间如下: char:8位 short:16位 int:32位 long:64位 unsigned long:64位 long long:64位 float:32位 double:64位 long double:128位 指针:64位 结构体的大小 因为结构体有时候需要 字节对齐 。一般而言,struct的sizeof是所有成员字节对齐后长度相加,而 union的sizeof是取最大的成员长度 。 在默认情况下,编译器为每一个变量或数据单元按其自然对界条件分配空间。一般地,可以通过下面的方法来改变默认的对界条件: (1) 使用伪指令#pragma pack(n),C编译器将按照n个字节对齐。 (2) 使用伪指令#pragma pack(),取消自定义字节对齐方式。 字节对齐的细节和编译器实现相关,但一般而言,满足以下3个准则: (1) 结构体变量的首地址能够被其最宽基本类型成员的大小所整除。 (2) 结构体每个成员相对于结构体首地址的偏移量(offset

指针偏移量的理解

谁说胖子不能爱 提交于 2019-11-28 12:21:47
今天刷题的时候碰到如下的一道题: int main() { int array[2019] = { 0 }; array[19] = 2019; unsigned long offset = (unsigned long)((short*)array + 2019) - (unsigned long)(array + *(unsigned char*)(array + 19)); cout << offset; } 以上程序的输出是多少? 仔细一看,这里面各种指针操作,让人一眼看去就有放弃的冲动。其实不急,按照一层一层的剥丝抽茧,其实也不是那么难。 首先,对于 ((short*)array+2019) 中,是把 array 指针由 int 型指针强制转换为 short 型指针,再偏移2019个单位。 short 型占2个字节,因而在地址上的偏移量就是 2019 * 2 = 4038 ; 然后,对于后面的 *(unsigned char*)(array + 19) 进行分解:1、 array+19 对应得是 array[19] 的地址,这个地址存储的数为2019,其写成16进制为 0x000007E3 ,而 (unsigned char*)(array + 19) 就是把这个地址转换为 unsigned char 型指针,由于 char 型只占1个字节

Redis 学习笔记(篇九):主从复制

こ雲淡風輕ζ 提交于 2019-11-28 06:08:41
Redis 中,可以通过执行 savleof 命令或者设置 slaveof 选项,让一个服务器去复制另一个服务器,我们称被复制的服务器为主服务器,而对主服务器进行复制的服务器则被称为从服务器。 Redis 2.8 之前复制功能的实现 Redis 中的复制分为同步和命令传播两个操作。 同步操作是将从服务器的数据库状态更新值主服务器当前所处的数据库状态。 命令传播操作则用于在主服务器的数据库状态被修改,导致主从服务器的数据库出现不一致时,让主从服务器的数据库重新回到一致状态。 同步 当客户端向从服务器发送 slaveof 命令,要求从服务器复制主服务器时,从服务器首先需要执行同步操作,也即是,将从服务器的数据库状态更新值主服务器当前所处的数据库状态。 从服务器对主服务器的同步操作是通过向主服务器发送 sync 命令来完成,执行步骤如下: 从服务器向主服务器发送 sync 命令。 收到 psync 命令的主服务器执行 bgsave 命令,在后台生成一个 RDB 文件,并用一个缓冲区记录从现在开始执行的所有写命令。 当主服务器 BGSAVE 命令执行完毕时,主服务器会将 BGSAVE 命令生成的 RDB 文件发送给从服务器,从服务器接收并载入这个 RDB 文件,将自己的数据库状态更新至主服务器执行 BGSAVE 命令时的数据库状态。 主服务器将记录在缓冲区里面的所有写命令发送给从服务器

计算结构体的大小

有些话、适合烂在心里 提交于 2019-11-27 22:04:21
计算结构体的大小: 结构体中可以定义的数据类型: 1.基本类型 2.上面已经出现过的数据类型,比如说上面已经定义过的结构体 3.指向自己的指针 因为内存对齐的问题,各个数据类型放的位置不同就会导致结构体的大小不一样,那么到底 怎样计算一个结构体的大小呢? 先介绍一个概念——偏移量,结构体中的偏移量就是结构体成员和结构体变量的地址之差, 比如说第一个结构体成员的偏移量就是0,第二个结构成员的偏移量就是第一个结构体成员 的大小,假如第一个成员的是int b;那么第二个结构体成员变量的偏移量就是4, 计算结构体大小的规则: 1.每一个成员的偏移量都必须是该成员的倍数。 2.结构体的大小必须是该结构体字节数最大成员的倍数。 例如下面的结构体:例一: struct A { char a; short b; int c; }; 第一个成员的偏移量都是0;一般可以不看,a的大小为1,所以成员b的偏移量为1,b的大小 为2,1不是2的倍数,所以应该将1+1,成为2的倍数,成员c的偏移量就为1+1+2,是成员c的 倍数,现在就符合计算结构体大小的第一条:改成员的偏移量是该成员大小 的倍数,还有第二条规则:结构体大小是结构体最大成员的倍数,结构体的大小就是各个成员 之和,a;2,b:2,c:4加起来就是8,该结构最大成员为c大小为4,满足第二个条件,所以该结 构体的倍数就是8 代码: #include

Kafka 原理和实战

半世苍凉 提交于 2019-11-27 21:43:06
本文首发于 vivo互联网技术 微信公众号 https://mp.weixin.qq.com/s/bV8AhqAjQp4a_iXRfobkCQ 作者简介:郑志彬,毕业于华南理工大学计算机科学与技术(双语班)。先后从事过电子商务、开放平台、移动浏览器、推荐广告和大数据、人工智能等相关开发和架构。目前在vivo智能平台中心从事 AI中台建设以及广告推荐业务。擅长各种业务形态的业务架构、平台化以及各种业务解决方案。 博客地址: http://arganzheng.life 。 背景 最近要把原来做的那套集中式日志监控系统进行迁移,原来的实现方案是: Log Agent => Log Server => ElasticSearch => Kibana,其中Log Agent和Log Server之间走的是Thrift RPC,自己实现了一个简单的负载均衡(WRB)。 原来的方案其实运行的挺好的,异步化Agent对应用性能基本没有影响。支持我们这个每天几千万PV的应用一点压力都没有。不过有个缺点就是如果错误日志暴增,Log Server这块处理不过来,会导致消息丢失。当然我们量级没有达到这个程度,而且也是可以通过引入队列缓冲一下处理。不过现在综合考虑,其实直接使用消息队列会更简单。PRC,负载均衡,负载缓冲都内建实现了。另一种方式是直接读取日志,类似于logstash或者flume的方式

Kafka 原理和实战

自作多情 提交于 2019-11-27 21:41:19
本文首发于 vivo互联网技术 微信公众号 https://mp.weixin.qq.com/s/bV8AhqAjQp4a_iXRfobkCQ 作者简介:郑志彬,毕业于华南理工大学计算机科学与技术(双语班)。先后从事过电子商务、开放平台、移动浏览器、推荐广告和大数据、人工智能等相关开发和架构。目前在vivo智能平台中心从事 AI中台建设以及广告推荐业务。擅长各种业务形态的业务架构、平台化以及各种业务解决方案。 博客地址: http://arganzheng.life 。 背景 最近要把原来做的那套集中式日志监控系统进行迁移,原来的实现方案是: Log Agent => Log Server => ElasticSearch => Kibana,其中Log Agent和Log Server之间走的是Thrift RPC,自己实现了一个简单的负载均衡(WRB)。 原来的方案其实运行的挺好的,异步化Agent对应用性能基本没有影响。支持我们这个每天几千万PV的应用一点压力都没有。不过有个缺点就是如果错误日志暴增,Log Server这块处理不过来,会导致消息丢失。当然我们量级没有达到这个程度,而且也是可以通过引入队列缓冲一下处理。不过现在综合考虑,其实直接使用消息队列会更简单。PRC,负载均衡,负载缓冲都内建实现了。另一种方式是直接读取日志,类似于logstash或者flume的方式

sizeof()计算结构体的大小

江枫思渺然 提交于 2019-11-27 16:52:22
简要说明:结构体成员按照定义时的顺序依次存储在连续的内存空间,但是结构体的大小并不是简单的把所有成员大小相加,而是遵循一定的规则,需要考虑到系统在存储结构体变量时的地址对齐问题。 一、没有成员的结构体占用的空间是多少个字节? 答案是:1个字节。 这就是实例化的原因(空类同样可以被实例化),每个实例在内存中都有一个独一无二的地址,为了达到这个目的,编译器往往会给一个空类或空结构体(C++中结构体也可看为类)隐含的加一个字节,这样空类或空结构体在实例化后在内存得到了独一无二的地址,所以空类所占的内存大小是1个字节。 二、首先介绍一个相关的概念——偏移量 struct stru { int a; //start address is 0 char b; //start address is 4 int c; //start address is 8 }; 偏移量指的是结构体变量中成员的地址和结构体变量地址的差。结构体大小等于最后一个成员的偏移量加上最后一个成员的大小。显然,结构体变量中第一个成员的地址就是结构体变量的首地址。比如上面的结构体,第一个成员a的偏移量为0。第二个成员b的偏移量是第一个成员的偏移量加上第一个成员的大小(0+4),其值为4;第三个成员c的偏移量是第二个成员的偏移量应该是加上第二个成员的大小(4+1)。 三、在实际中,存储变量时地址要求对齐