Category: newest

  • DNS的TXT记录 http://www.openspf.org/

    在dns记录里面,除了最常见的a记录,cn记录,mx记录,还有不常见的txt记录。 txt记录用来保存域名的附加文本信息,txt记录的内容按照一定的格式编写,最常用的是spf格式,spf用于登记某个域名拥有的用来外发邮件的 所有ip地址。mx记录的作用是给寄信者指明某个域名的邮件服务器有哪些,spf格式的txt记录的作用跟mx记录相反,它向收信者表明,哪些邮件服务器 是经过某个域名认可会发送邮件的。spf的作用主要是反垃圾邮件,主要针对那些发信人伪造域名的垃圾邮件。 按照spf格式在dns中增加一条txt类型的记录,将提高该域名的信誉度,同时可以防止垃圾邮件伪造该域的发件人发送垃圾邮件。 spf格式比较复杂,一个最典型的spf格式的txt记录例子为“v=spf1 a mx ~all ”,表示只有这个域名的a记录和mx记录中的ip地址有权限使用这个域名发送邮件。其中v=spf1表示这条txt记录使用的是spf格式版本1;a和 mx表示a记录或者mx记录;~all表示除了前面所指定的其他ip地址统统不认可。 openspf.org提供了一个spf向导用来生成spf。 txt记录除了保存spf之外,还有什么用途?Jonney在这里提供一个例 子:假如你开发了一个有几百万用户的应用软件,这个软件每隔几个星期就会升级一次版本,这个软件每次启动的时候都要到你的服务器查询是否有新的版本,这样 你必须维护一个或多个版本查询服务器。聪明且懒惰的同学就可以在这里偷懒了,在你的dns里面新增一条txt记录,用来保存软件的版本信息,比如在 version.example.com增加一条txt记录version=1.2.5,生存周期为一天,软件启动的时候查询这个txt记录里面的版本信 息,这样就省了维护版本查询服务器的成本。 做企业邮箱的朋友都会用到TXT记录,用来防止邮件服务器被当作垃圾邮件,这是TXT最重要的一个作用,不过还有其他的作用。 TXT 记录,一般指为某个主机名或域名设置的说明,如: admin IN TXT “管理员, 电话: 13901234567″ mail IN TXT “邮件主机, 存放在xxx , 管理人:AAA” Jim IN TXT “contact: abc@mailserver.com” 也就是您可以设置 TXT ,以便使别人联系到您 。当然,要用英文填写。

  • apache cassandra 3.9 大内存调优

    采用G1 方式。 http://docs.datastax.com/en/archived/cassandra/3.x/cassandra/operations/opsTuneJVM.html

  • wordpress 迁移域名后的图片url地址变更

    wordpress 迁移域名后的图片url地址变更

    手动改数据库即可: UPDATE wp_posts SET post_content=(REPLACE (post_content, ‘moneyslow.com’,’test.moneyslow.com’));

  • nfs showmount clnt_create:RPC:Unknown host

    # /etc/init.d/nfs start 正常 # showmount -e localhost 报错: clnt_create:RPC:Unknown host 解决: # /etc/init.d/rpcsvrgssd status rpc.svrgssd is stopped # /etc/init.d/rpcsvrgssd start # /etc/init.d/nfs restart

  • linux dns dig 命令详解

    linux dns dig 命令详解

    Dig简介: Dig是一个在类Unix命令行模式下查询DNS包括NS记录,A记录,MX记录等相关信息的工具。 Dig的源码是ISC BIND大包的一部分,但是大多编译和安装Bind的文档都不把它包括在内,但是在linux系统下,它通常是某个包的一部分,在Gentoo下是 bind-tools,在Redhat/Fedora下是 bind-utils,或者在Debian下是 dnsutils。  看懂默认输出:   最简单最常见的查询是查询一台主机,但是默认情况下,Dig的输出信息很详细。你可能不需要所有的输出, 但是它确实值得知道。下面是一个带有注释的查询:  $ dig www.isc.org 上面是我调用dig 的命令行。 ; <<>> DiG 9.2.3 <<>> www.isc.org ;; global options:  printcmd Dig的部分输出告诉我们一些有关于它的版本信息(version 9.2.3)和全局的设置选项,如果+nocmd在命令行下 是第一个参数的话,那么这部分输出可以通过加+nocmd的方式查询出来。 ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43071 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 3 在这里,Dig告诉我们一些从DNS返回的技术信息,这段信息可以用选项 +[no]comments来控制显示,但是小心,禁止掉comments也可能关闭一些其它的选项。…

  • 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 实例分配一个没有被使用的本地端口号,并创建一个包含本地和远程地址和端口号的套接字数据结构,这个数据结构将一直保存在系统中直到这个连接关闭。在创建…

  • 利用Dante架设linux的socks5代理服务器

    dante-server 是一个国外开源的socks5代理服务器软件,官网地址http://www.inet.no/dante/安装:apt-get install dante-server完成后主… dante-server 是一个国外开源的socks5代理服务器软件,官网地址 http://www.inet.no/dante/ 安装:apt-get install dante-server完成后主要编辑/etc/danted.conf 这个文件: # the server will log both via syslog, to stdout and to /var/log/lotsoflogs #logoutput: syslog stdout /var/log/lotsoflogs logoutput: syslog   # The server will bind to the address 10.1.1.1, port 1080 and will only # accept connections going to that address. internal: eth0 port =…

  • Linux下的双网卡绑定bond0 em1 em2

    一、什么是bonding Linux bonding 驱动提供了一个把多个网络接口设备捆绑为单个的网络接口设置来使用,用于网络负载均衡及网络冗余  二、bonding应用方向1、网络负载均衡 对于bonding的网络负载均衡是我们在文件服务器中常用到的,比如把三块网卡,当做一块来用,解决一个IP地址,流量过大,服务器网络压力过大的问题。对于文件服务器来说,比如NFS或SAMBA文件服务器,没有任何一个管理员会把内部网的文件服务器的IP地址弄很多个来解决网络负载的问题。如果在内网中,文件服务器为了管理和应用上的方便,大多是用同一个IP地址。对于一个百M的本地网络来说,文件服务器在多 个用户同时使用的情况下,网络压力是极大的,特别是SAMABA和NFS服务器。为了解决同一个IP地址,突破流量的限制,毕竟网线和网卡对数据的吞吐量是有限制的。如果在有限的资源的情况下,实现网络负载均衡,最好的办法就是 bonding 2、网络冗余 对于服务器来说,网络设备的稳定也是比较重要的,特别是网卡。在生产型的系统中,网卡的可靠性就更为重要了。在生产型的系统中,大多通过硬件设备的冗余来提供服务器的可靠性和安全性,比如电源。bonding 也能为网卡提供冗余的支持。把多块网卡绑定到一个IP地址,当一块网卡发生物理性损坏的情况下,另一块网卡自动启用,并提供正常的服务,即:默认情况下只有一块网卡工作,其它网卡做备份  三、bonding实验环境及配置 1、实验环境 系统为:CentOS,使用2块网卡(em1、em2  ==>  bond0)来实现bonding技术 2、bonding配置 第一步:先查看一下内核是否已经支持bonding  1)如果内核已经把bonding编译进内核,那么要做的就是加载该模块到当前内核;其次查看ifenslave该工具是否也已经编译modprobe  -l   bond*  或者 modinfo   bonding modprobe   bonding lsmod | grep ‘bonding’ echo  ‘modprobe bonding &> /dev/null’  >>  /etc/rc.local(开机自动加载bonding模块到内核)which  ifenslave注意:默认内核安装完后就已经支持bonding模块了,无需要自己手动编译 2)如果bonding还没有编译进内核,那么要做的就是编译该模块到内核(1)编译bonding tar -jxvf  kernel-XXX.tar.gz cd  kernel-XXX make  menuconfig选择 ” Network device support ”  ->  ” Bonding driver support ” make bzImage make modules  &&  make modules_install make install (2)编译ifenslave工具gcc -Wall -O -I   kernel-XXX/include…

  • 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

  • 改变网卡的速度和双工

    没有比购买一个完全的Linux兼容网卡更好的Linux投资了。大部分的Linux厂商在他们网站上都有一份兼容的硬件列表:在开始连接你的机器到网络之前请仔细阅读它。如果你没有找到任何在本地的计算机商店可以买到的型号,那么同系列也是可以的。大多数网卡都能正常工作,但只有完全兼容的可为您提供无差错的,持续的吞吐量。 Linux缺省会在网卡连接到路由器上时自动协商判断网卡的速度和双工。配置一个路由器端口自动协商速度和双工往往是不足够的,因为不同的协议标准执行上常会有分歧。 实际上,网卡即使协商失败也会工作,但这通常会导致在网卡上使用ifconfig -a命令时看到许多冲突类型的错误和极低的性能。在故障排除时不要只把这类错误局限于协商失败;问题也可能是坏的网卡,路由器端口,或者网线导致的。 使用mii-tool mii-tool是一个原始的设置网卡速度和双工的Linux工具。它以注定会被抛弃,而由新的ethtool命令取而代之,但是很多老的网卡只支持mii-toll,所以你还需要知道它。不带任何参数的执行命令会产生一个简要的状态报告,如下面样例所示,对于不支持的网卡将提示Operation not supported信息。mii-tool不兼容的网卡往往仍然可以工作,但是你需要根据制造商的指南来设定速度和双工,而不能自动协商。 [root@bigboy tmp]# mii-tool SIOCGMIIPHY on ‘eth0’ failed: Operation not supported eth1: 100 Mbit, half duplex, link ok [root@bigboy tmp]# 通过-v参数使用verbose模式,你可以获得更多更详细的信息。在这个例子中,协商正常,网卡选择100Mbps,全双工模式(FD)。 [root@bigboy tmp]# mii-tool -v eth1: negotiated 100baseTx-FD, link ok product info: vendor 00:10:18, model 33 rev 2 basic mode: autonegotiation enabled basic status: autonegotiation complete, link ok…

  • hydra 配合 libssh 扫描弱口令

    [ERROR] Compiled without LIBSSH v0.4.x support, module is not available!     如何装libssh呢?方法如下:     方法一、支持apt-get的话     apt-get purge hydra apt-get install cmake libssl-dev     方法二、编译安装     2.1 libssh wget http://www.libssh.org/files/0.4/libssh-0.4.8.tar.gz tar zxf libssh-0.4.8.tar.gz cd libssh-0.4.8 mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Debug -DWITH_SSH1=ON .. make make install     2.2 hydra…

  • 如何在windows7下安装dig工具

    如何在windows7下安装dig工具

    1 下载bind地址:http://www.isc.org/downloads/选择下面的downloadss按钮,把右面的加号打开,如图:咱就选当前稳定版,点download:根据本机的类型选择,这里我的电脑是32位的,选择下载。下载zip包文件,解压安装,双击文件BINDInstall.exe,如图:只选择tools即可,安装目录自己定义:这样就安装完成。最好,把c:\dig 目录放到你的环境变量里面去:我的电脑,右键属性,高级系统设置,高级标签,环境变量,加到path属性里。

  • 如何获取电信运营商ip地址分配的详细信息

    whois 工具获取 APNIC是管理亚太地区IP地址分配的机构,它有着丰富准确的IP地址分配库,同时这些信息也是对外公开的!下面就让我们看看如何在Linux下获得一些电信运营商的IP地址分配情况:shell> wget http://ftp.apnic.net/apnic/dbase/tools/ripe-dbase-client-v3.tar.gzshell> tar xzvf ripe-dbase-client-v3.tar.gzshell> cd whois-3.1shell> ./configureshell> make完成上述编译安装工作后,我们开始获取IP地址段;中国网通:shell> ./whois3 -h whois.apnic.net -l -i mb MAINT-CNCGROUP > /var/cnc中国电信:shell> ./whois3 -h whois.apnic.net -l -i mb MAINT-CHINANET > /var/chinanet中国铁通:shell> ./whois3 -h whois.apnic.net -l -i mb MAINT-CN-CRTC > /var/crtc打开获取后的文件可以看到里面的信息非常详细,甚至可以看到各个分公司的负责人、电话、电子邮件等等信息。如果想得到一份整齐干净的IP地址段文件,只要用grep和awk简单过滤就可以了:)一个转自CU的自动获取脚本 :复制代码 代码如下:#!/bin/sh#auto get the IP Table#get the newest delegated-apnic-latestrm delegated-apnic-latestif type wgetthen wget http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latestelse fetch http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latestfigrep…

  • 安装两个mysql 端口不同

    ./configure –prefix=/usr/local/mysql3307 –sysconfdir=/usr/local/mysql3307/etc –with-tcp-port=3307 –localstatedir=/ssdc/mysqldata –with-mysqld-user=mysql –enable-assembler –datadir=/ssdc/mysqldata –with-mysqld-ldflags=-all-static –with-client-ldflags=-all-static –with-unix-socket-path=/usr/local/mysql3307/mysql.sock –with-charset=utf8 –with-collation=utf8_general_ci –with-extra-charsets=all     /usr/local/mysql3307/bin/mysql_install_db –user=mysql –datadir=/ssdc/mysqldata

  • linux下查找占用磁盘io的进程

    问题描述: 一个文件正在被进程写 我想查看哪个进程在写这个文件。     解决思路: Linux 下每个文件都会在某个块设备上存放,当然也都有相应的 inode ,那么透过 vfs.write 我们就可以知道谁在不停的写入特定的设备上的 inode。 那用什么工具呢? 这个神器就是systemtap ,具体的命令就是stap。  参考:http://cccgw.info/2012/07/systemtap%E5%85%A5%E9%97%A8/ 安装很简单:yum -y install systemtap 但是这个安装完毕,还需要内核的支持,不然会报错。具体的说就是需要安装kernel-debuginfo包。 安装过程: 1 查看内核版本    uname -r    2.6.32-279.el6.x86_64 2 下载相应的包:    wget http://debuginfo.centos.org/6/x86_64/kernel-debuginfo-2.6.32-279.el6.x86_64.rpm    wget http://debuginfo.centos.org/6/x86_64/kernel-debuginfo-common-2.6.32-279.el6.x86_64.rpm 3 安装rpm包:   rpm -ivh kernel-debuginfo-2.6.32-279.el6.x86_64.rpm kernel-debuginfo-common-2.6.32-279.el6.x86_64.rpm 4 确保安装包正常:   rpm -qa|grep kernel-debug   kernel-debuginfo-common-x86_64-2.6.32-279.el6.x86_64   kernel-debuginfo-2.6.32-279.el6.x86_64…

  • 牛逼大了的ssh

    1、复制SSH密钥到目标主机,开启无密码SSH登录 ssh-copy-id user@host 如果还没有密钥,请使用ssh-keygen命令生成。 2、从某主机的80端口开启到本地主机2001端口的隧道 ssh -N -L2001:localhost:80 somemachine 现在你可以直接在浏览器中输入http://localhost:2001访问这个网站。 3、将你的麦克风输出到远程计算机的扬声器 dd if=/dev/dsp | ssh -c arcfour -C username@host dd of=/dev/dsp 这样来自你麦克风端口的声音将在SSH目标计算机的扬声器端口输出,但遗憾的是,声音质量很差,你会听到很多嘶嘶声。 4、比较远程和本地文件 ssh user@host cat /path/to/remotefile | diff /path/to/localfile – 在比较本地文件和远程文件是否有差异时这个命令很管用。 5、通过SSH挂载目录/文件系统 sshfs name@server:/path/to/folder /path/to/mount/point 从http://fuse.sourceforge.net/sshfs.html下载sshfs,它允许你跨网络安全挂载一个目录。 6、通过中间主机建立SSH连接 ssh -t reachable_host ssh unreachable_host Unreachable_host表示从本地网络无法直接访问的主机,但可以从reachable_host所在网络访问,这个命令通过到reachable_host的”隐藏”连接,创建起到unreachable_host的连接。 7、将你的SSH公钥复制到远程主机,开启无密码登录 – 简单的方法 ssh-copy-id username@hostname 8、直接连接到只能通过主机B连接的主机A ssh -t hostA ssh hostB…

  • nginx 目录禁止ip 重定向域名不发生变化

    nginx 目录禁止ip location /zgadmin { allow 220.220.22.92; deny all; } nginx 实现A域名重写到B域名而不引起浏览器中url的变化? rewrite与proxy_pass搭配使用: location ~ ^/frompath/ { rewrite ^/frompath/(.*)$ /topath/$1 break; proxy_pass http://www.domainB.com; } 既可以实现http://www.a.com/frompath/page.php 被重写到 http://www.b.com/topath/page.php 而不引起浏览器地址栏中url的变化。

  • 怎样分辨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就可以了。

  • 连环画泰斗 贺友直

    连环画泰斗贺友直 pdf

  • 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年未履行的,工商机关将其永久列入严重违法企业“黑名单”。

  • happy 2017 祝福新年快乐

    告别2016,祝福各位新年快乐。

  • mysql主从配置视频

    主库: GRANT REPLICATION SLAVE ON *.* TO ‘repl’@’10.0.0.1’ IDENTIFIED BY ‘password’; flush privileges; 从库: CHANGE MASTER TO MASTER_HOST=’10.0.0.1′,master_user=’repl’,master_password=’password’,MASTER_LOG_FILE=’mysql-bin.000152′, MASTER_LOG_POS=1; start slave; show slave status\G;

  • 视频:linux 下如何找到一个命令或文件

    本视频介绍如何在linux下找到一个命令或者文件

  • discuz 修改discuz.gtimg.cn http 为 https

    http://discuz.gtimg.cn/cloud/scripts/discuz_tips.js?v=1 修改: source/plugin/manyou/Service/DiscuzTips.php source/plugin/manyou/Service/Doctor.php

  • 安装.NET Framework 进度条卡住不动了

    1. 需要关闭系统的update服务:快捷键Win+R打开服务面板,输入“services.msc”打开服务管理,找到“Windows Update”选项, 右键点击“停止”; 2. 以管理员权限打开dos命令行,输入如下命令:net stop WuAUServ,以停止更新服务; 3. 打开系统目录(C:\\Windows\System32,或者Win+R输入“%windir%”),找到“Software Distribution”文件夹,重命名为“SDold”; 4. 重新打开“Windows Update”服务; 5. 重新安装.NET Framework即可。

  • 如何在vi里删除 空行 空字符 重复行 dos符号

    经常用到的vi内的删除命令: x 或 X 删除一个字符。 Ctrl+u 删除输入方式下所输入的文本。 ^R 恢复u的操作 J 把下一行合并到当前行尾 V 选择一行 ^V 按下^V后即可进行矩形的选择了 :%s/r//g 删除DOS方式的回车^M :%s= *$== 删除行尾空白 :%s/^(.*)n1/1$/ 删除重复行 :%s/^.pdf/new.pdf/ 只是删除第一个pdf :%s/// 又是删除多行注释(咦?为什么要说「又」呢?) :g/^s*$/d 删除所有空行 :g/^s*$/d 删除所有空行 :g!/^dd/d 删除不含字符串’dd’的行 :v/^dd/d 同上 (译释:v == g!,就是不匹配!) :g/str1/,/str2/d 删除所有第一个含str1到第一个含str2之间的行 :v/./.,/./-1join 压缩空行 :g/^$/,/./-j 压缩空行 ndw 或 ndW 删除光标处开始及其后的 n-1 个字符。 d0 删至行首。 d$ 删至行尾。 ndd 删除当前行及其后…

  • 如何在windows下安装php的curl扩展

    1、下载php安装包到c:\php 2、确保在cmd命令里可以执行 php -v 3、到c盘php目录里生成一个php.ini文件,可以用php.ini-development 拷贝一个。 4、编辑php.ini里将extension=php_curl.dll 去掉注释 5、windows 环境变量 path里加入 c:\php 6、cmd里执行php -m 就应该有curl模块了

  • Centos 7 安装mysql

    Introduction MySQL is a popular open source relational database. The popularity of MySQL means there is an abundance of information online and well documented client libraries available. MySQL supports many common database features such as replication, partitioning, triggers, views, and stored procedures. A plugin storage architecture allows support for multiple storage engines. Requirements Single server…

  • 如何在Centos7下修改网卡名称

    首先,禁止系统自带的命名规则,需要添加一个参数到内核启动文件中。 编辑 /etc/default/grub 添加 “net.ifnames=0” 如下图 利用如下命令重新生成grub配置文件: $ sudo grub2-mkconfig -o /boot/grub2/grub.cfg 编辑 /etc/sysconfig/network-scripts 下的相应文件 运行命令 udevadm control –reload-rules 重启网络服务

  • 如何禁止IPv6 on CentOS 7 / RHEL 7

    方法 1: Edit the /etc/sysctl.conf. # vi /etc/sysctl.conf Put the following entry to disable IPv6 for all adapter. net.ipv6.conf.all.disable_ipv6 = 1 For particular adapter. (If the network card name is eno16777736). net.ipv6.conf.eno16777736.disable_ipv6 = 1 To reflect the changes by executing the following command. # sysctl -p 方法 2: Create file called disableipv6.conf in /etc/sysctl.d. # vi /etc/sysctl.d/disableipv6.conf Put the…

  • Centos7 下如何配置静态ip地址

    Centos7 下如何配置静态ip地址

    In this small tutorial i will explain how to configure static ip address on CentOS 7 minimal. First, need to edit the set up for the ethernet. Let’s start with editing “/etc/sysconfig/network-scripts/ifcfg-enp0s3″ file: vi /etc/sysconfig/network-scripts/ifcfg-enp0s3 HWADDR=08:00:27:6C:FF:91 TYPE=Ethernet BOOTPROTO=static DEFROUTE=yes PEERDNS=yes PEERROUTES=yes IPV4_FAILURE_FATAL=no IPADDR=192.168.0.88 IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_PEERDNS=yes IPV6_PEERROUTES=yes IPV6_FAILURE_FATAL=no NAME=enp0s3 UUID=ea68db6e-461e-427d-b9a8-bfcf6e1a4fc6 ONBOOT=yes Save and exit. Now, configure default getaway:…

  • 雅虎邮箱提示您在所用浏览器上启用Javascript 功能解决办法

    雅虎邮箱提示您在所用浏览器上启用Javascript 功能解决办法

    其实这个是在大陆的限制。解决办法很简单,登陆英文网站 yahoo.com,点击右上角的mail进入邮箱,一般他会要求输入验证码。这样就绕过js的安全限制了。

  • ssl证书 nginx、apache、tomcat、IIS8、IIS6 下证书的安装方法

    ssl证书 nginx、apache、tomcat、IIS8、IIS6 下证书的安装方法

    Nginx:安装证书 ( 1 ) 打开 Nginx 安装目录下 conf 目录中的 nginx.conf 文件,找到 # HTTPS server # #server { # listen 443; # server_name localhost; # ssl on; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # ssl_session_timeout 5m; # ssl_protocols SSLv2 SSLv3 TLSv1; # ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; # ssl_prefer_server_ciphers on; # location / { ## #} #} ( 2…