w1100n
This site is best viewed in Google Chrome
wiloon, 8/14/2018 11:22

https://www.cnblogs.com/geaozhang/p/6745147.html 一、聚合函数(aggregation function)—也就是组函数   在一个行的集合(一组行)上进行操作,对每个组给一个结果。 常用的组函数: AVG([distinct] expr) 求平均值 COUNT({*|[distinct] } expr) 统计行的数量 MAX([distinct] expr) 求最大值 MIN([distinct] expr) 求最小值 SUM([distinct] expr) 求累加和   ①每个组函数接收一个参数   ②默认情况下,组函数忽略列值为null的行,不参与计算   ③有时,会使用关键字distinct剔除字段值重复的条数 注意:   1)当使用组函数的select语句中没有group by子句时,中间结果集中的所有行自动形成一组,然后计算组函数;   2)组函数不允许嵌套,例如:count(max(…));   3)组函数的参数可以是列或是函数表达式;   4)一个SELECT子句中可出现多个聚集函数。 实验演示用表: 复制代码 mysql> select * from salary_tab; +——–+———+ | userid … Continue reading

wiloon, 8/9/2018 14:27

svn change password 1. after svn password changed, delete the folder $HOME/.subversion 2. run svn checkout –username user svn://server/repo, input new password 3. run git svn

wiloon, 8/3/2018 14:54

http://www.cnblogs.com/wangtao_20/p/3504395.html mysql在线修改表结构大数据表的风险与解决办法归纳 整理这篇文章的缘由: 互联网应用会频繁加功能,修改需求。那么表结构也会经常修改,加字段,加索引。在线直接在生产环境的表中修改表结构,对用户使用网站是有影响。 以前我一直为这个问题头痛。当然那个时候不需要我来考虑,虽然我们没专门的dba,他们数据量比我们更大,那这种问题也会存在。所以我很想看看业界是怎么做的,我想寻找有没有更高级的方案,呵呵,让我觉得每次开发一个新功能,我在线加字段都比较纠结。后来只知道,不清楚在什么时候,无意中看到一个资料介绍online-schema-change这个工具,于是顺便搜出了不少东西。后来逐渐发现腾讯,淘宝他们都会存在这种问题,我发现解决思路都差不多。具体看完我这篇归纳的文章 由于mysql在线ddl(加字段、加索引等修改表结构之类的操作)过程如下: A.对表加锁(表此时只读) B.复制原表物理结构 C.修改表的物理结构 D.把原表数据导入中间表中,数据同步完后,锁定中间表,并删除原表 E.rename中间表为原表 F.刷新数据字典,并释放锁 在这个过程中会锁表。造成当前操作的表无法写入数据,影响用户使用。由于需要复制原表的数据到中间表,所以表的数据量越大,等待的时候越长,卡死在那里(用户被拒绝执行update和insert操作,表现就是延迟了一直在等待)。 其实就是对表加了个排它锁,这个时候其他用户只能读表的数据,不能写。想具体体验一下是什么效果,我以前测验对mysql的表加锁,操作的时候是如何的:http://www.cnblogs.com/wangtao_20/p/3463435.html 平时进行修改表的结构,更改字段,新增字段,更改字段名称一般都是通过ALTER TABLE TABLENAE 语法进行修改的。对于测试库,在线小表或者并发访问不是很大的情况是OK。但是如果是在线大表。那就很麻烦。由于表数据量大,复制表需要比较长的时间,在这个时间段里面,表是被加了锁的(写锁),加写锁时其他用户只能select表不能update、insert表。表数据量越大,耗时越长。 所以,对于数据量大的表,数量很大。在线修改表结构一直是一个头痛的问题,因为互联网应用的一大特点不能影响用户正常使用,否则用户会慢慢流失掉。 有些公司碰到的表数据很小,几万到几十万行数据一张表,可能还不会遇到应用卡死的问题。所以我们网站在跑,开发个新功能,需要加个新字段,经常是直接操作不会影响什么(何况只是延迟写入操作而已,呵呵) 看这几篇文章就知道了: 1、http://wiki.hexnova.com/pages/viewpage.action?pageId=2031684 mysql在线修改表字段造成的锁表 2、http://hidba.org/?p=795 3、比如就有人专门在加字段之前进行测验mysql是否复制表,以减低应用卡死的风险:http://www.cnblogs.com/zuoxingyu/archive/2013/03/28/2986715.html 拷贝表结构,然后插入少量的数据。去修改表结构。看影响的行。如果为0,则表示不会拷贝中间表的方式 目前业界实践出了一些成熟的解决办法: 1、很多公司以前的做法是:停掉mysql服务器来修改表结构。然后进行滚动式更新。比如很多台mysql服务器。先修改主服务器的表结构,把这台服务器停掉来更新(一般多台主服务器,让其他主服务器提供服务)。等到更新完,就滚动到从服务器(在此之前是其他从服务器提供服务的)。其实想想发现有个弊病:修改表结构要等到很长时间才能生效。mysql服务器越多,就需要的时间越长。那我可以理解:假设需要几天,那只有等到更新完毕。才能把代码丢上去,因为表结构没有更新完毕,新的程序操作新的字段会出错的。 从冯大辉那篇文章那里听说,Facebook数千台MySQL服务器在过去增加个索引需要几个月的滚动升级(后来他们自己开发了后面提到的工具,只需要几天) 能够停掉mysql服务器来修改字段,这就好办,时间长也无所谓,呵呵,至少用户不会使用你网站的时候卡死吧。但是互联网应用往往不能影响用户使用,所以很多公司尽量是在凌晨的时候进行操作(这个时候访问用户少,对用户影响就小) 比如像这个例子:http://www.mysqlops.com/2011/03/30/myisam-innodb.html 表的数据量上亿。要把表的存储引擎从myisam改为innodb(我觉得存储结构都不同了,转换需要时间更长),但是他是停掉mysql服务器操作的。 阿里巴巴的冯大辉分享中也提到,业务应用大,需求就会频繁变化。所以就经常涉及到修改数据库字段,在线的调整字段是要考虑很多的问题的。作者认为,目前没有特别的方法来解决这个问题(技术是适应需求变化,支撑运营的)。他说豆瓣对此也很头痛,只能把服务器短暂的停一下。 2、测验法。加字段,加索引,先在测试环境模拟测试一下需要多长时间。免得服务器生产环境正式加的时候,应用卡死了,好有个预期准备。 我记得以前在a公司,表数据量也上千万,压根就没这种测验吧,大白天,就直接加字段和索引,反正我也不知道前台影响如何,当时我也没这个经验,何况我也不是技术负责人,呵呵,技术负责人都没不清楚这个,我那就更加没了,那个技术经理是做企业级开发的,跟web开发环境和思维方式是不同的,他不清楚会存在这些影响吧,再说,当时在加的时候没法凑巧用户投诉说,网站无法下单了啊,没这么巧的情况。其实从我现在理解角度来看,我绝对会更加严格点。 前面也提到了,国外有人研究修改表结构会不会复制一张临时表,就看”rows affected “的值。如果为0,则表示不会拷贝中间表的方式,这样子就很快的。我没试过 3、使用专门的辅助工具。一些公司开发了自己的内部工具来辅助进行。比如facebook。 另外腾讯的技术也介绍了他们自己定制的tmysql进行在线加字段的实现原理: … Continue reading

wiloon, 8/3/2018 10:51

在学习git的过程中,有些blog提到这种detached HEAD情况,处于好奇,去搜索了相关的文章查看这种情况的具体表现,以及解决方案,在这里作个总结。 detached head,即游离的HEAD,HEAD指向了未知的分支,即不在所有已知的分支范围内。 detached HEAD 具体示意图是这样:(网络图片) 这里写图片描述 上网看了些资料,道友们是遇到这样的问题然后解决了,但是出于好奇心来了解的我并没有这样的问题,但是仍然按照道友的解决顺序尝试了下,发现执行下面这句代码git checkout origin/master,会产生detached HEAD这种情况. $ git checkout origin/master Note: checking out ‘origin/master’. You are in ‘detached HEAD’ state. You can look around, make experimental changes and commit them, and you can discard … Continue reading

wiloon, 8/3/2018 10:49

https://git-scm.com/book/zh/v1/Git-%E5%88%86%E6%94%AF-%E5%88%86%E6%94%AF%E7%9A%84%E6%96%B0%E5%BB%BA%E4%B8%8E%E5%90%88%E5%B9%B6 http://blog.hanghu.me/git/2017/03/08/The-merge-tool-bc-is-not-available-as-bcompare.html http://www.rosipov.com/blog/use-vimdiff-as-git-mergetool/

wiloon, 8/2/2018 7:58

https://blog.csdn.net/wangerge/article/details/3931491 单播、多播和广播单播”(Unicast)、“多播”(Multicast)和“广播”(Broadcast)这三个术语都是用来描述网络节点之间通讯方式的术语。那么这些术语究竟是什么意思?区别何在? 1.单播:网络节点之间的通信就好像是人们之间的对话一样。如果一个人对另外一个人说话,那么用网络技术的术语来描述就是“单播”,此时信息的接收和传递只在两个节点之间进行。单播在网络中得到了广泛的应用,网络上绝大部分的数据都是以单播的形式传输的,只是一般网络用户不知道而已。例如,你在收发电子邮件、浏览网页时,必须与邮件服务器、Web服务器建立连接,此时使用的就是单播数据传输方式。但是通常使用“点对点通信”(Point to Point)代替“单播”,因为“单播”一般与“多播”和“广播”相对应使用。 2.多播:“多播”也可以称为“组播”,在网络技术的应用并不是很多,网上视频会议、网上视频点播特别适合采用多播方式。因为如果采用单播方式,逐个节点传输,有多少个目标节点,就会有多少次传送过程,这种方式显然效率极低,是不可取的;如果采用不区分目标、全部发送的广播方式,虽然一次可以传送完数据,但是显然达不到区分特定数据接收对象的目的。采用多播方式,既可以实现一次传送所有目标节点的数据,也可以达到只对特定对象传送数据的目的。   IP网络的多播一般通过多播IP地址来实现。多播IP地址就是D类IP地址,即224.0.0.0至239.255.255.255之间的IP地址。Windows 2000中的DHCP管理器支持多播IP地址的自动分配。 3.广播:“广播”在网络中的应用较多,如客户机通过DHCP自动获得IP地址的过程就是通过广播来实现的。但是同单播和多播相比,广播几乎占用了子网内网络的所有带宽。拿开会打一个比方吧,在会场上只能有一个人发言,想象一下如果所有的人同时都用麦克风发言,那会场上就会乱成一锅粥。集线器由于其工作原理决定了不可能过滤广播风暴,一般的交换机也没有这一功能,不过现在有的网络交换机也有过滤广播风暴功能了,路由器本身就有隔离广播风暴的作用。   广播风暴不能完全杜绝,但是只能在同一子网内传播,就好像喇叭的声音只能在同一会场内传播一样,因此在由几百台甚至上千台电脑构成的大中型局域网中,一般进行子网划分,就像将一个大厅用墙壁隔离成许多小厅一样,以达到隔离广播风暴的目的。   在IP网络中,广播地址用IP地址“255.255.255.255”来表示,这个IP地址代表同一子网内所有的IP地址。 当前的网络中有三种通讯模式:单播、广播、组播(多播),其中的组播出现时间最晚但同时具备单播和广播的优点,最具有发展前景。 一、单播: 主机之间“一对一”的通讯模式,网络中的交换机和路由器对数据只进行转发不进行复制。如果10个客户机需要相同的数据,则服务器需要逐一传送,重复10次相同的工作。但由于其能够针对每个客户的及时响应,所以现在的网页浏览全部都是采用IP单播协议。网络中的路由器和交换机根据其目标地址选择传输路径,将IP单播数据传送到其指定的目的地。 单播的优点: 服务器及时响应客户机的请求 服务器针对每个客户不通的请求发送不通的数据,容易实现个性化服务。 单播的缺点: 服务器针对每个客户机发送数据流,服务器流量=客户机数量×客户机流量;在客户数量大、每个客户机流量大的流媒体应用中服务器不堪重负。 现有的网络带宽是金字塔结构,城际省际主干带宽仅仅相当于其所有用户带宽之和的5%。如果全部使用单播协议,将造成网络主干不堪重负。现在的P2P应用就已经使主干经常阻塞,只要有5%的客户在全速使用网络,其他人就不要玩了。而将主干扩展20倍几乎是不可能。 二、 广播: 主机之间“一对所有”的通讯模式,网络对其中每一台主机发出的信号都进行无条件复制并转发,所有主机都可以接收到所有信息(不管你是否需要),由于其不用路径选择,所以其网络成本可以很低廉。有线电视网就是典型的广播型网络,我们的电视机实际上是接受到所有频道的信号,但只将一个频道的信号还原成画面。在数据网络中也允许广播的存在,但其被限制在二层交换机的局域网范围内,禁止广播数据穿过路由器,防止广播数据影响大面积的主机。 广播的优点: 网络设备简单,维护简单,布网成本低廉 由于服务器不用向每个客户机单独发送数据,所以服务器流量负载极低。 广播的缺点: 1.无法针对每个客户的要求和时间及时提供个性化服务。 网络允许服务器提供数据的带宽有限,客户端的最大带宽=服务总带宽。例如有线电视的客户端的线路支持100个频道(如果采用数字压缩技术,理论上可以提供500个频道),即使服务商有更大的财力配置更多的发送设备、改成光纤主干,也无法超过此极限。也就是说无法向众多客户提供更多样化、更加个性化的服务。 广播禁止在Internet宽带网上传输。 三、组播: 主机之间“一对一组”的通讯模式,也就是加入了同一个组的主机可以接受到此组内的所有数据,网络中的交换机和路由器只向有需求者复制并转发其所需数据。主机可以向路由器请求加入或退出某个组,网络中的路由器和交换机有选择的复制并传输数据,即只将组内数据传输给那些加入组的主机。这样既能一次将数据传输给多个有需要(加入组)的主机,又能保证不影响其他不需要(未加入组)的主机的其他通讯。 组播的优点: 需要相同数据流的客户端加入相同的组共享一条数据流,节省了服务器的负载。具备广播所具备的优点。 由于组播协议是根据接受者的需要对数据流进行复制转发,所以服务端的服务总带宽不受客户接入端带宽的限制。IP协议允许有2亿6千多万个(268435456)组播,所以其提供的服务可以非常丰富。 此协议和单播协议一样允许在Internet宽带网上传输。 组播的缺点: 1.与单播协议相比没有纠错机制,发生丢包错包后难以弥补,但可以通过一定的容错机制和QOS加以弥补。 2.现行网络虽然都支持组播的传输,但在客户认证、QOS等方面还需要完善,这些缺点在理论上都有成熟的解决方案,只是需要逐步推广应用到现存网络当中。

wiloon, 7/31/2018 16:40

https://lwn.net/Articles/531114/ https://coolshell.cn/articles/17010.html Linux Namespace是Linux提供的一种内核级别环境隔离的方法。 chroot内部的文件系统无法访问外部的内容。Linux Namespace在此基础上,提供了对UTS、IPC、mount、PID、network、User等的隔离机制。 UTS Namespace IPC全称 Inter-Process Communication,是Unix/Linux下进程间通信的一种方式,IPC有共享内存、信号量、消息队列等方法。

wiloon, 7/30/2018 20:02

http://blog.leapoahead.com/2015/09/06/understanding-jwt/ JSON Web Token (JWT)是一种基于 token 的认证方案。 JSON Web Token 的结构 一个 JWT token 看起来是这样的: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9. eyJleHAiOjEzODY4OTkxMzEsImlzcyI6ImppcmE6MTU0ODk1OTUiLCJxc2 giOiI4MDYzZmY0Y2ExZTQxZGY3YmM5MGM4YWI2ZDBmNjIwN2Q0OTFjZj ZkYWQ3YzY2ZWE3OTdiNDYxNGI3MTkyMmU5IiwiaWF0IjoxMzg2ODk4OTUxfQ. uKqU9dTB6gKwG6jQCuXYAiMNdfNRw98Hw_IWuA5MaMo 可以简化为下面这样的结构: base64url_encode(Header) + ‘.’ + base64url_encode(Claims) + ‘.’ + base64url_encode(Signature) Header Header 包含了一些元数据,至少会表明 token 类型以及 签名方法。比如 { “typ” : “JWT”, … Continue reading

wiloon, 7/30/2018 19:23

单页Web应用(single page web application,SPA),就是只有一张Web页面的应用,是加载单个HTML 页面并在用户与应用程序交互时动态更新该页面的Web应用程序。单页Web应用(single page web application,SPA),就是只有一张Web页面的应用。单页应用程序 (SPA) 是加载单个HTML 页面并在用户与应用程序交互时动态更新该页面的Web应用程序。 [1] 浏览器一开始会加载必需的HTML、CSS和JavaScript,所有的操作都在这张页面上完成,都由JavaScript来控制。因此,对单页应用来说模块化的开发和设计显得相当重要。

wiloon, 7/26/2018 13:04

https://blog.csdn.net/xushx_bigbear/article/details/47746285 https://blog.csdn.net/lee244868149/article/details/57076615

wiloon, 7/25/2018 20:50

https://forum.xda-developers.com/huawei-p8/how-to/rooting-huawei-p8-marshmallow-emui4-0-1-t3431249 install twrp Download: https://www.androidfilehost.com/?fid=529152257862681510 – rename the .img to “TWRP” (TWRP.img) and flash it with ADB. – first store the TWRlP.img in C:\Program Files (x86)\Minimal ADB and Fastboot, after open the Program (Phone must be connected with USB to … Continue reading

wiloon, 7/25/2018 15:27

https://www.cnblogs.com/tzyy/p/5099207.html ISO日期格式标准,浏览器到服务器到mysql中的时区 章节目录 时区简单理解 ISO_8601日期格式标准 HTML5 input标签datetime属性 mysql时区 时区简单理解 https://zh.wikipedia.org/wiki/%E6%97%B6%E5%8C%BA 上面的链接是时区的wiki说明,下面说说我记住的部分: GMT时区是格林威治标准时间,我把它理解为 “真实时间” UTC时区是根据GMT得来的“世界标准时间”,它的时间和GMT是相同的 CST可以指下列的时区: 澳洲中部时间,Central Standard Time (Australia) 中部标准时区(北美洲),Central Standard Time (North America) 北京时间,China Standard Time 古巴标准时间,Cuba Standard Time,参见北美东部时区 其中我们所在的时区背景时间 CST=UTC+8小时,也就是说,真实时间是0点的时候,背景时间是8点 ISO_8601日期格式标准 https://zh.wikipedia.org/wiki/ISO_8601 上面是日期格式标准的wiki 当前的UTC时间是2016-01-07T01:58Z,其中Z是4位数字格式的时间偏移量,不写的时候默认不偏移。 其中,字母T代表使用UTC时间,字母Z代表时间偏移量,实际写法中字母Z应该被偏移量替换,例如 “2017-1-7T10:21+0800″或者”2017-1-7T10:21-0800″,字母Z被+0800和-0800替换了。 在浏览器中直接new一个date对象,因为我们处于UTC+0800的时区,所以控制台给我们打印出来的时间是GMT+0800的时间 2016-01-07T00:00 … Continue reading

wiloon, 7/15/2018 15:50

https://www.docker-cn.com/registry-mirror 永久性保留更改,您可以修改 /etc/docker/daemon.json 文件并添加上 registry-mirrors 键值。 { “registry-mirrors”: [“https://registry.docker-cn.com”] }

wiloon, 7/13/2018 17:17

https://www.cnblogs.com/farwish/p/4806018.html https://blog.csdn.net/xwhself/article/details/6118722

wiloon, 7/12/2018 17:51

download elasticsearch https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.1.rpm install jdk8 yum localinstall elasticsearch-6.3.1.rpm start elasticsearch, it will generate default config file systemctl start elasticsearch edit config file /etc/elasticsearch/elasticsearch.yml path.data: /data/server/elasticsearch path.logs: /data/server/elasticsearch network.host: 0.0.0.0 mkdir -p /data/server/elasticsearch/ chown -R elasticsearch:elasticsearch elasticsearch/ systemctl restart elasticsearch install … Continue reading

wiloon, 7/10/2018 10:48

https://blog.csdn.net/test1280/article/details/75268255 填充模式:PKCS#5/PKCS7 首先我们要了解下啥是填充模式。 在分组加密算法中(例如DES),我们首先要将原文进行分组,然后每个分组进行加密,然后组装密文。 其中有一步是分组。 如何分组? 假设我们现在的数据长度是24字节,BlockSize是8字节,那么很容易分成3组,一组8字节; 考虑过一个问题没,如果现有的待加密数据不是BlockSize的整数倍,那该如何分组? 例如,有一个17字节的数据,BlockSize是8字节,怎么分组? 我们可以对原文进行填充(padding),将其填充到8字节的整数倍! 假设使用PKCS#5进行填充(以下都是以PKCS#5为示例),BlockSize是8字节(64bit): 待加密数据原长度为1字节: 0x41 填充后: 0x410x070x070x070x070x070x070x07 1 2 3 4 待加密数据原长度为2字节: 0x410x41 填充后: 0x410x410x060x060x060x060x060x06 1 2 3 4 待加密数据原长度为3字节: 0x410x410x41 填充后: 0x410x410x410x050x050x050x050x05 1 2 3 4 待加密数据原长度为4字节: 0x410x410x410x41 填充后: 0x410x410x410x410x040x040x040x04 1 … Continue reading

wiloon, 7/8/2018 11:22

networking.service raises or downs the network interfaces configured in /etc/network/interfaces, that is, those network interfaces which are not managed by NetworkManager. If you look into /lib/systemd/system/networking.service you will see that all it does is ifup or ifdown depending on whether … Continue reading

next page
辽ICP备14012896