Year: 2017
-
怎样分辨u盘是USB2.0还是3.0
1、看盘体上的产品标识。正规的U盘产品,在盘体上都会清晰明确的标示有”USB2.0″或”USB3.0″字样来标明U盘接口版本,从基座颜色上区分:USB2.0接口基座一般为黑色或者白色。USB3.0接口基座为蓝色。2、看接口中塑料片的颜色。此方法并不绝对有效,但是大多数USB2.0接口的U盘接口内的塑料片颜色都是黑色或者白色,USB3.0接口的U盘接口内的塑料片颜色则是蓝色。从U盘插口针脚区分:USB 2.0是4针脚,而USB 3.0采用了9针脚,针脚比USB2.0多。3、从传输速度上区分:此方法需要借助于工具,理论上,USB 2.0的速率为480 Mbps,USB 3.0则可达到4.8 Gbps。看接口内金属引脚的数量。此方法绝对有效。USB3.0接口使用了9个金属接脚,以前四后五的方式排列,而USB2.0接口只使用了4个金属引脚,4个引脚排成一排。3.0 的接口:
-
ERROR 1133(42000) can ‘t find any matching row in the user table
出现这个错误需要执行这个: mysql>SET SESSION sql_mode=’STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION’; 后再执行之前的sql就可以了。
-
redis 应用场景
下面是一篇新鲜出炉的文章,其作者是Redis作者@antirez,他描述了Redis比较适合的一些应用场景,NoSQLFan简单列举在这里,供大家一览: 1.取最新N个数据的操作 比如典型的取你网站的最新文章,通过下面方式,我们可以将最新的5000条评论的ID放在Redis的List集合中,并将超出集合部分从数据库获取 使用LPUSH latest.comments命令,向list集合中插入数据 插入完成后再用LTRIM latest.comments 0 5000命令使其永远只保存最近5000个ID 然后我们在客户端获取某一页评论时可以用下面的逻辑(伪代码) FUNCTION get_latest_comments(start,num_items): id_list = redis.lrange(“latest.comments”,start,start+num_items-1) IF id_list.length < num_items id_list = SQL_DB("SELECT ... ORDER BY time LIMIT ...") END RETURN id_list END 如果你还有不同的筛选维度,比如某个分类的最新N条,那么你可以再建一个按此分类的List,只存ID的话,Redis是非常高效的。 2.排行榜应用,取TOP N操作 这个需求与上面需求的不同之处在于,前面操作以时间为权重,这个是以某个条件为权重,比如按顶的次数排序,这时候就需要我们的sorted set出马了,将你要排序的值设置成sorted set的score,将具体的数据设置成相应的value,每次只需要执行一条ZADD命令即可。 3.需要精准设定过期时间的应用 比如你可以把上面说到的sorted set的score值设置成过期时间的时间戳,那么就可以简单地通过过期时间排序,定时清除过期数据了,不仅是清除Redis中的过期数据,你完全可以把Redis里这个过期时间当成是对数据库中数据的索引,用Redis来找出哪些数据需要过期删除,然后再精准地从数据库中删除相应的记录。 4.计数器应用 Redis的命令都是原子性的,你可以轻松地利用INCR,DECR命令来构建计数器系统。 5.Uniq操作,获取某段时间所有数据排重值 这个使用Redis的set数据结构最合适了,只需要不断地将数据往set中扔就行了,set意为集合,所以会自动排重。 6.实时系统,反垃圾系统 通过上面说到的set功能,你可以知道一个终端用户是否进行了某个操作,可以找到其操作的集合并进行分析统计对比等。没有做不到,只有想不到。 7.Pub/Sub构建实时消息系统 Redis的Pub/Sub系统可以构建实时的消息系统,比如很多用Pub/Sub构建的实时聊天系统的例子。 8.构建队列系统 使用list可以构建队列系统,使用sorted set甚至可以构建有优先级的队列系统。 9.缓存 这个不必说了,性能优于Memcached,数据结构更多样化。
-
linux下查看uuid的3种方法
1 命令查看:blkid2 文件查看:ls -l /dev/disk/by-uuid3 命令查看:vol_id /dev/sda1 UUID的作用及意义 原因1:它是真正的唯一标志符 UUID为系统中的存储设备提供唯一的标识字符串,不管这个设备是什么类型的。如果你在系统中添加了新的存储设备如硬盘,很可能会造成一些麻烦,比如说启动的时候因为找不到设备而失败,而使用UUID则不会有这样的问题。 原因2:设备名并非总是不变的 自动分配的设备名称并非总是一致的,它们依赖于启动时内核加载模块的顺序。如果你在插入了USB盘时启动了系统,而下次启动时又把它拔掉了,就有可能导致设备名分配不一致。 使用UUID对于挂载移动设备也非常有好处──例如我有一个24合一的读卡器,它支持各种各样的卡,而使用UUID总可以使同一块卡挂载在同一个地方。 原因3:Ubuntu中的许多关键功能现在开始依赖于UUID 例如grub──系统引导程序,现在可以识别UUID,打开你的/boot/grub/menu.lst,你可以看到类似如下的语句:title Ubuntu hardy (development branch), kernel 2.6.24-16-genericroot (hd2,0)kernel /boot/vmlinuz-2.6.24-16-generic root=UUID=c73a37c8-ef7f-40e4-b9de-8b2f81038441 ro quiet splashinitrd /boot/initrd.img-2.6.24-16-genericquiet
-
http和socket之长连接和短连接区别
TCP/IP TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层。 在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。 在传输层中有TCP协议与UDP协议。 在应用层有:TCP包括FTP、HTTP、TELNET、SMTP等协议 UDP包括DNS、TFTP等协议 短连接 连接->传输数据->关闭连接 HTTP是无状态的,浏览器和服务器每进行一次HTTP操作,就建立一次连接,但任务结束就中断连接。 也可以这样说:短连接是指SOCKET连接后发送后接收完数据后马上断开连接。 长连接 连接->传输数据->保持连接 -> 传输数据-> 。。。 ->关闭连接。 长连接指建立SOCKET连接后不管是否使用都保持连接,但安全性较差。 http的长连接 HTTP也可以建立长连接的,使用Connection:keep-alive,HTTP 1.1默认进行持久连接。HTTP1.1和HTTP1.0相比较而言,最大的区别就是增加了持久连接支持(貌似最新的 http1.0 可以显示的指定 keep-alive),但还是无状态的,或者说是不可以信任的。 什么时候用长连接,短连接? 长连接多用于操作频繁,点对点的通讯,而且连接数不能太多情况,。每个TCP连接都需要三步握手,这需要时间,如果每个操作都是先连接,再操作的话那么处理速度会降低很多,所以每个操作完后都不断开,次处理时直接发送数据包就OK了,不用建立TCP连接。例如:数据库的连接用长连接, 如果用短连接频繁的通信会造成socket错误,而且频繁的socket 创建也是对资源的浪费。 而像WEB网站的http服务一般都用短链接,因为长连接对于服务端来说会耗费一定的资源,而像WEB网站这么频繁的成千上万甚至上亿客户端的连接用短连接会更省一些资源,如果用长连接,而且同时有成千上万的用户,如果每个用户都占用一个连接的话,那可想而知吧。所以并发量大,但每个用户无需频繁操作情况下需用短连好。 总之,长连接和短连接的选择要视情况而定。 发送接收方式 1、异步 报文发送和接收是分开的,相互独立的,互不影响。这种方式又分两种情况: (1)异步双工:接收和发送在同一个程序中,由两个不同的子进程分别负责发送和接收 (2)异步单工:接收和发送是用两个不同的程序来完成。 2、同步 报文发送和接收是同步进行,既报文发送后等待接收返回报文。 同步方式一般需要考虑超时问题,即报文发出去后不能无限等待,需要设定超时时间,超过该时间发送方不再等待读返回报文,直接通知超时返回。 在长连接中一般是没有条件能够判断读写什么时候结束,所以必须要加长度报文头。读函数先是读取报文头的长度,再根据这个长度去读相应长度的报文。 Socket是什么 Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。 通信过程: 主机 A 的应用程序要能和主机 B 的应用程序通信,必须通过 Socket 建立连接,而建立 Socket 连接必须需要底层 TCP/IP 协议来建立 TCP 连接。建立 TCP 连接需要底层 IP 协议来寻址网络中的主机。我们知道网络层使用的 IP 协议可以帮助我们根据 IP 地址来找到目标主机,但是一台主机上可能运行着多个应用程序,如何才能与指定的应用程序通信就要通过 TCP 或 UPD 的地址也就是端口号来指定。这样就可以通过一个 Socket 实例唯一代表一个主机上的一个应用程序的通信链路了。 建立通信链路当客户端要与服务端通信,客户端首先要创建一个 Socket 实例,操作系统将为这个 Socket 实例分配一个没有被使用的本地端口号,并创建一个包含本地和远程地址和端口号的套接字数据结构,这个数据结构将一直保存在系统中直到这个连接关闭。在创建…
-
利用mysql event 实现秒级crontab
创建event CREATE EVENT ossec_del_data ON SCHEDULE EVERY 5 SECOND COMMENT ‘delete data every 30 sencond’ DO DELETE alert, data FROM alert LEFT JOIN data ON alert.id=data.id LEFT JOIN signature ON alert.rule_id=signature.rule_id LEFT JOIN location ON alert.location_id=location.id WHERE alert.rule_id in (31106,5501,5502,533,31104,31105,5706,31153,5710); 查看enent SHOW CREATE EVENT ossec_del_data; 修改时间间隔 ALTER EVENT ossec_del_data ON SCHEDULE EVERY 2 DAY;…
-
Perl篇:常用调试命令
本文所用到的Perl调试器为Perl解释器本身,可以通过-d开关打开调试功能。本文不会将涵盖所有的调试命令,只会解释一些我们常用的调试命令,希望对热爱Perl的朋友有所帮助。 打开调试开关 Perl是解释型语言,运行一个Perl脚本,可以通过在命令行中敲入形如 Perl Test.pl 的命令直接解释执行。如果想调试我们的脚本程序,可以加上-d选项,命令为perl -d Test.pl,回车后程序会停在DB<1>处,如下图所示: 从上图看出程序执行到主(main)程序的第二行(Test.pl 2) 插入/查看/删除断点 插入断点可以使用b命令,命令格式为:b 行号/函数名 条件,在上图中DB<1>处即可设置断点,如下图所示: 在子过程SetInitValue处设置了断点 查看设置的断点使用L命令,注意是大写,小写是显示尚未执行到的代码的部分内容,如下图所示: 断点设置在21行处 删除设置的断点请使用B命令,该命令格式为:B 行号| *,可以指定行号来删除断点或者使用通配符*来删除所有的断点,如下图所示: 删除21行处的断点 增加/查看/删除监视 添加监视对于调试程序非常重要,本示例脚本中定义了一个名叫$val的变量,初始值为1,在SetInitValue函数中修改值为12。通过对其添加监视,来理解Perl中怎么增减删除监视的 添加一个$val==1表达式的监视,命令为w $val==1,如下图所示: 添加对表达式的一个监视 …
-
linux ip_forward 说明
ip地址分公有地址和私有地址,public address是由INIC(internet network information center)负责,这些ip地址分配给注册并向INIC提出申请的组织机构。通过它访问internet.private address是属于非注册地址,专门为组织内部使用,private ip address是不可能直接用来跟WAN通信的,要么利用帧来通信(FRE帧中继,HDLC,PPP),要么需要路由的NAT功能把私有地址转换为一个公有ip! 选择一台电脑(有两个网卡或者用单网卡然后用软件虚拟多一个网卡)充当网关,一个网卡(eth0)连接外网ISP,另一网卡(eth1)连接内网(即局域网)。局域网内的ip地址都是私用地址,只能在内部使用,在公网上是不可见的,所以局域网电脑要上网必须修改ip,这就是网关的工作。 工作原理: 内网主机向公网发送数据包时,由于目的主机跟源主机不在同一网段,所以数据包暂时发往内网默认网关处理,而本网段的主机对此数据包不做任何回应。由于源主机ip是私有的,禁止在公网使用,所以必须将数据包的源发送地址修改成公网上的可用ip,这就是网关收到数据包之后首先要做的工作–ip转换。然后网关再把数据包发往目的主机。目的主机收到数据包之后,只认为这是网关发送的请求,并不知道内网主机的存在,也没必要知道,目的主机处理完请求,把回应信息发还给网关。网关收到后,将目的主机发还的数据包的目的ip地址修改为发出请求的内网主机的ip地址,并将其发给内网主机。这就是网关的第二个工作–数据包的路由转发。内网的主机只要查看数据包的目的ip与发送请求的源主机ip地址相同,就会回应,这就完成了一次请求。 出于安全考虑,Linux系统默认是禁止数据包转发的。所谓转发即当主机拥有多于一块的网卡时,其中一块收到数据包,根据数据包的目的ip地址将包发往本机另一网卡,该网卡根据路由表继续发送数据包。这通常就是路由器所要实现的功能。 配置Linux系统的ip转发功能,首先保证硬件连通,然后打开系统的转发功能 less /proc/sys/net/ipv4/ip_forward,该文件内容为0,表示禁止数据包转发,1表示允许,将其修改为1。可使用命令echo “1” > /proc/sys/net/ipv4/ip_forward 修改文件内容,重启网络服务或主机后效果不再。若要其自动执行,可将命令echo “1” > /proc/sys/net/ipv4/ip_forward 写入脚本/etc/rc.d/rc.local 或者 在/etc/sysconfig/network脚本中添加 FORWARD_IPV4=”YES”
-
开公司问答
内资公司准备材料: 1、地址页盖章(盖产权单位的公章,或房主签字,并提供房主签字的身份证复印件),以及详细地址怎么写(要按照房本来写)。2、房产证明复印件(盖产权单位的公章,或房主签字)首页、房屋登记表页盖章,再盖骑缝章(签字在重要页签字,再签骑缝的)。 3、股东身份证原件、法定代表人身份证原件。 4、监事、秘书联系人身份证复印件(必须清晰,如是第二代需提供正反页;法人股需提供执照复印件3份,加盖公章)。 5、联系方式 6、租赁合同原件,租金发票原件。 7、公司的执行董事/法定代表人。 8、章程(章程需要股东签字或盖章)。 9、工商设立申请书。 核名需要准备什么材料呢? 1、所在区域; 2、投资者姓名、投资比例 、提供股东身份证复印件; 3、注册资金; 4、公司名称(地域+字号+行业特点+有限公司;字号+地域 +行业特点+有限公司;字号+行业特点+地域+有限公司); 5、代理委托书,所有股东签字(法人股盖公司公章)。 6、公司经营范围(具体的,一定要与主营业务)。 注册公司为什么要必须开银行账户呢? 在网登之前我们需要去银行开一个临时账户,这个账户就是验资户,然后我们把钱存到银行的验资户里面,接着就要请会计师事务所的人来验资,验完资后就拿着验资报告到工商部门去办理营业执照、刻公章、组织机构代码证、税务登记证,把所有的证照办完后,我们就需要到银行去开基本户了,等基本户开下来后,验资户就要注销,把验资户里的钱,转到基本户里,这样我们才能把验资的钱取出来。 为什么要出具验资报告? 依照《公司法》规定,公司的注册资本必须经法定的验资机构出具验资报告,验资机构出具的验资报告是表明公司注册资本数额的合法证明。依照国家有关法律、行政法规的规定,法定验资机构是会计师事务所和审计师事务所.验资后,验资机构应出具验资报告,连同验资证明材料及其他附件,一并交与委托人,做为申请注册资本的依据。 什么是企业年报,企业年报的主要内容是什么? 企业年报是一种针对经营企业的一种制度,新出台的《注册资本登记制度改革方案》提出,企业年检制度改为企业年度报告公示制度。企业应当按年度在规定的期限内,通过市场主体信用信息公示系统向工商机关报送年度报告,并向社会公示,任何单位和个人均可查询。 在前段时间,工商总局发布消息称:从2014年3月1日起,全国企业年检正式取消。届时将停止对领取营业执照的有限责任公司、股份有限公司、非公司企业法人、合伙企业、个人独资企业及其分支机构、来华从事经营活动的外国(地区)企业,及其他经营单位的企业年检工作。 企业“年报”的主要内容包括公司股东(发起人)缴纳出资情况、资产状况等,企业对年度报告的真实性、合法性负责,工商机关可以对企业年度报告公示内容进行抽查。经检查发现企业年度报告隐瞒真实情况、弄虚作假的,工商机关依法予以处罚,并将企业法定代表人、负责人等信息通报公安、财政、海关、税务等有关部门,形成“一处违法,处处受限”。 对未按规定期限公示年度报告的企业,工商机关会将其载入经营异常名录。企业在3年内履行年度报告公示义务的,可以申请恢复正常记载状态;超过3年未履行的,工商机关将其永久列入严重违法企业“黑名单”。