- 博客(28)
- 资源 (2)
- 收藏
- 关注
原创 lvs介绍
lvs是负载均衡较常用的软件之一,下面简单介绍一下lvs。lvs提供了一个命名的约定vip:虚拟ip地址,缩写是vip,vip是负载均衡器对外提供服务的ip。rip:真实ip地址,缩写是rip,rip是集群下面节点上使用的ip地址。dip:负载均衡器的真实ip,用于连接内外网络的ip。cip:客户端的ip地址,访问来源ip。lvs的工作模式有如下几种,直接路由(dr)模式、na
2016-03-07 14:32:59
1302
原创 mysql运维3--备份
先介绍一个mysql的备份命令mysqldump。语法:mysqldump -u 用户名 -p -B ‘密码’ 数据库名 -e “show varibles like '%character%'”|gzip>备份的文件名.sql.gz(备份多个库时,在数据库名位置指定多个库即可)参数:B 不加没有创建库的语句 e数据库命令 ,可以不加 gzip对导出数据进行压缩备份数据恢复:
2016-03-01 14:57:09
544
原创 mysql运维2--基本操作
先说一说mysql的启动: 启动过程: /etc/init.d/mysqld start---检查端口---查看进程 使用mysqld启动其实内部会调用mysqld_safe脚本启动mysql,一般出故障时会直接调用mysql_safe脚本启动mysql,因为可以自己添加参数。(多实例用mysqld_safe启动) 关闭数据库: /etc/init.d/
2016-03-01 09:08:24
475
原创 mysql运维1--mysql多实例
什么是mysql多实例?简答的说,就是在一台机器上开启多个不同端口,运行多个mysql进程,这些进程通过socket监听不同的服务端口来提供各自服务。这些mysql实例公用一套mysql安装程序,使用不同(可以相同)my.conf配置文件、启动程序、数据文件。多个实例根据自身配置文件对应的设定值来获取相关硬件资源。 多实例的配置方案,在mysql目录下按照不同端口区分不同实例,每个目录下都有
2016-02-29 15:54:04
898
原创 nginx反向代理--upstream模块
1.nginx负载均衡依赖于ngx_http_upstream_module模块,支持以下代理模式:proxy_pass:一般用于反向代理fastcgi_pass:一般用于和动态文件交互,php等memcached_pass:2.upstream模块编写upsrtream 模块名{ server abc.example.com weight=5; 可以接
2016-02-29 13:29:11
1052
原创 nagios
nagios是较常用的监控软件之一,一般由一个主程序,一个插件程序(Nagios-plugins)和一些可选的附加程序(NRPE,NSCliet++,NSCA等)构成。其中附加程序安装在被监控端(客户端),nagios主程序安装在服务端,插件程序是实际工作的程序,可以自己编写,也可以使用现成模块,一般同时安装在间服务端与客户端。 下面介绍一下几个附加程序: NRPE:安装在linux
2016-02-23 19:25:13
812
原创 redis
本节介绍一下redis,redis和memcached有些类似,不同的是可以把数据持久化,下面列举出redis几条优点。 1.性能高:redis能支持超过100K+每秒读写速率 2.丰富的数据类型:redis支持二进制的String,List,Hash,Set及Sorted set等数据类型操作。 3.原子操作:redis所有操作都是原子性的,同时redis还支持对几个操作
2016-02-23 09:22:30
382
原创 memcached
memcached在lamp时已经提到,这节详细介绍一下。memcached是一套数据缓存系统或者软件,主要用于动态应用系统中缓存数据库的数据,减少数据库访问压力或者session会话共享存储,通过预分配指定的内存空间来存取数据。memcached和数据库间关系如下图:menchached的配置文件请网上查询,memchched可以多实例,相当于启动多个应用程序,把部署完的shell写
2016-02-22 17:09:46
496
原创 lamp/lnmp优化4--CGI
先介绍一下什么是cgi,简单来说,cgi就是web服务器和应用程序中间连通的一个工具,fastcgi是cgi的优化。简单介绍一下fastcgi, 1.fastcgi是http server 和动态脚本语言间通讯的接口或者工具。 2.fastcgi优点是把动态语言和httpserver分离。 3.nginx和lighttpt以及多数动态语言都支持fastcgi。 4.fast
2016-02-22 10:36:26
464
原创 lamp/lnmp优化3--php.ini
这一章说一说php引擎的优化。1.php缓存加速,请参考前面的文章。2.使用tmpfs作为缓存加速文件目录3.php.ini参数调优3.1打开php安全模式方法:safe_mode=on3.2用户组安全方法:safe_mode_gid=off3.3关闭危险函数,以禁用system函数为例方法:disable_functions=system3.4关闭php版
2016-02-20 20:52:40
439
原创 lamp/lnmp优化2--nginx
lamp或者lnmp架构优化之web,先说nginx的优化。1.隐藏nginx header内版本号信息。方法:在http标签内 加入 server_tokens off;2.更改nginx默认用户和用户组。nginx服务启动默认用户为nobody,为了防止别人知道,我们可以改为别的用户名。方法:我们可以在编译时候指定用户名和用户组,之后把这个用户shell设置为nologin。如
2016-02-20 17:45:09
488
原创 lamp/lnmp优化1--缓存
关于lamp和lnmp组合就不多提了,lamp主要是apache+php(libphp5.so),lnmp主要是nginx+php(fcgi php-fpm),这里主要介绍一下对php进行优化,对应一个主配置文件进行优化,就是php.ini。 为什么需要缓存,因为php是一个解释型语言,每次请求都会从头解析程序,将其编译为特定操作码,之后由php引擎执行并且丢弃掉。有了缓存之后就可以保存这
2016-02-20 11:10:28
1679
原创 细说python类3——类的创建过程
先来介绍一下python的__call__函数,call的作用是什么呢?举个例子来说明一下:>>> class A(object):... def __init__(self):... print 'a'... def __call__(self):... print 'call'... >>> a=A()a>>> a()call
2016-01-27 18:37:24
5439
原创 细说python类2——类动态添加方法和slots
先说一下类添加属性方法和实例添加属性和方法的区别,类添加属性属于加了一个以类为全局的属性(据说叫静态属性),那么以后类的每一个实例化,都具有这个属性。给类加一个方法也如此,以后类的每一个实例化都具备这个方法(但是据说叫动态方法。)但是给实例加一个属性,作用域就是这个实例,是与类没关系的(据说这种属性叫动态属性)。python类的实例可以动态的添加属性。举个例子,声明一个类A>>> cl
2016-01-27 16:05:54
2391
原创 细说python类1——经典类和新式类
python中的类分为新式类和经典类,具体有什么区别呢?简单的说,1.新式类都从object继承,经典类不需要。2.经典类继承深度优先,经典类继承广度优先。3.新式类相同父类只执行一次构造函数,经典类重复执行多次。下面举个例子说明一下。有类A、B、C、D、E,B、C继承A,D继承B、C,E继承D、A。先从经典类说起,代码如下:class A: def __init__(s
2016-01-27 14:31:41
2172
转载 django中的ajax实现(GET)
如果看过Jquery的ajax文档,很容易在各平台使用他们,ajax也不算是什么新鲜的事了,在Django中结合Jquery使用Ajax,让Django开发的应用发挥更好的用户体验,同时降低服务器的负担,也不是难事。来看Jquery下Ajax的使用说明,http://api.jquery.com/category/ajax/,哗,有十几个函数,如果想更生动学习,请移步到lulu studio:
2015-08-10 16:45:42
1295
转载 Django中的request.GET和request.POST
Django的views.py中定义的函数的requst参数,可以读request.method确定是POST还是GET首先,request.GET 和 request.POST是两个对象,类字典对象,提供和字典类似的接口,也有一些别的接口。什么是POST和GET,这与HTTP协议有关:参考这篇博客:http://blog.youkuaiyun.com/gideal_wang/arti
2015-08-10 16:33:47
44214
原创 django学习笔记之登录
在测试admin成功之后我开始写web的第一个功能,登录。顺序如下:1.首先在url里面添加登录,我把登录的文件放在account.py下面,所以url写为:url(r'^accounts/login/$', 'sys_pm.account.userlogin',name='userlogin'),这里的name参数为此条url的别名,当你想引用这条url时候,只需要action={% url
2015-08-05 14:24:43
440
原创 django学习笔记之开发功能之前的准备
在django功能开发之前,我们需要设定各种需要用到的环境变量。在setting里比较常使用的几项就是MEDIA_ROOT,MEDIA_URL,STATIC_ROOT,STATIC_URL等几项。static设置的是静态的文件,比如css,js等。media放置的是媒体文件。对于static可以放在一起,也可以单独设置目录,目录设置如下:STATICFILES_DIRS = (
2015-08-04 14:47:27
453
原创 django学习笔记之(model设计与实现)
最近一直学习django中,正巧有一个项目给我练手,从今天开始记录一下过程。django中设计model是写web最开始的任务,话不多说,此处就遇到问题记录一下:1.类的顺序问题。因为python是解释型语言,所以类的顺序是有一定规律的,一定要把没有依赖的类写在前面,否则会报错。2.类之间关系的设计。在django中,一共定义了三种类之间的关系,多对多,多对一和一对一。此处说一下多对一
2015-08-04 12:28:22
1149
原创 替换文件内容
前几天无意间看见一道题,内容大致是这样的。有一个文件,里面内容是这样的格式1 aa2 bb3 cc4 dd现在想插入3 ee,如果存在3 那么把后面内容换成新内容,如果不存在则添加一行。一开始我是这么写的tmp=[]with open('1','r') as fd: lock=0 a=fd.readlines()
2015-05-19 13:37:03
485
原创 python cook book第三版 读书笔记4(第四章,迭代器和生成器)
使用迭代器4.2迭代代表,本节列举了一般在构造迭代器时候,在类里面加入__itrr__()方法>>> class Node:... def __init__(self,value):... self._value=value... self._children=[]... def __repr__(self):
2015-05-05 10:58:25
890
原创 python cook book第三版 读书笔记3(第三章)
本章是对数字数据和时间的处理。3.1修改数字使用round函数,类似于我们平时使用的四舍五入,保留小数点后几位。>>> round(1.23,1)1.2>>> round(-1.27,1)-1.3对于整数,可以使用round取整>>> a=1627731>>> round(a,-1)1627730.0>>> round(a,-2)1627700.0
2015-05-05 09:53:19
656
原创 python cook book第三版 读书笔记2(第二章)
2.1用不同的分隔符分割字符串,这节主要讲了re模块里面的split()方法,因为字符串分割符可能有多种,可以用正则表达式进行匹配,如果有一种使用字符串下的split()方法即可。>>> import re如果用[ ]将正则表达式括起来,则分割后不包含分隔符>>> re.split(r'[;,\s]\s*',line)['asdf', 'ffgh', 'fvf', 'tgtrh
2015-04-28 10:06:02
611
原创 python cook book第三版 读书笔记1(第一章)
因本人看的英文版,为自己翻译,不准确处见谅。1.1把序列拆开赋值到变量里,可能本人翻译比较别嘴,但意思就是下面这样>>> p=(4,5)>>> x,y=p>>> x4>>> y5>>> data=['alice',50,91.1,(2012,12,21)]>>> name,shares,price,data=data>>> name'alice'
2015-04-27 10:10:19
714
原创 python cookbook 读书笔记3(字符串处理3)
1.11检查字符串是文本还是二进制,这个还可以用做别的,但是思路都一样。>>> from __future__ import division#确保不会截断>>> import string>>> text_characters=''.join(map(chr,range(32,127)))+'\n\r\t\b'>>> _null_trans=string.maketrans(''
2015-04-24 15:48:54
409
原创 python cookbook 读书笔记2(字符串处理2)
1.8检查字符集中是否包含某字符集中的字符一般的这么写>>> def containAny(seq,aset):... for c in seq:... if c in aset:return Ture... return False...>>> a=['ee','etg4','g4g']>>> b=['f3f','34f43
2015-04-23 17:30:52
552
原创 python cookbook 读书笔记1(字符串处理1)
今日开始阅读python cook book,学习内容记录一下。1.1对于字符串处理,可以将字符串变成一个列表
2015-04-23 14:35:30
451
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人