自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

农民工

底层搬砖工,请多指导.

  • 博客(38)
  • 收藏
  • 关注

原创 关于常见的几种缓存算法

一次偶然的交流机会,被问到关于缓存算法的问题,结果当场蒙圈,同时也暴露了自己的不足; 结合目前的理解,也就只知道软件会结合http header头去做一些处理来控制缓存过期时间,当磁盘满后,会删除最冷的数据,至于什么是冷? 是最远的还是次数最少的? 看完下面是最常用的一些算法就会得出结论:1. 缓存相关概念缓存 : 凡是位于速度相差较大的两种硬件之间,用于协调两者数据传输速度差异的结构

2017-06-16 20:12:42 16143 4

原创 linux之top 简探究

做为一个经常来去linux 系统之上的管理员来说,top 再熟悉不过了,可以每项都代表了什么? 相信大多数人都犯了个懒,只看了自己关心的那个,当然我也不例外,所以今天才写了这个笔记,以供吐槽先看一下top显示了什么显示当前包括负载、进程数目、CPU 和 内存使用量等,并列出了cpu使用率,以下是我觉得比较好用的几个常用参数-c       显示完整的进程全路

2017-06-14 11:17:20 1136

原创 linux环境下tab 自动补全功能

也许你是老油条,但是用惯了开发工具,在linux下也会有一脸懵b的时候,然后各种dir(),help(),查方法,今天要介绍的就是更快捷的方法。大家都比较喜欢shell环境下,随便敲下自己想操作命令的前1个或几个字母,就可以使用tab键快速的补全剩余的命令,或查看这些字母开头的所有命令,实际上在python shell中,我们也可以实现这个功能,下面我们来一起看一下:1:首先我们需要得到p

2017-03-14 16:38:16 18108

转载 shell中的${},##和%%的使用

假设我们定义了一个变量为:file=/dir1/dir2/dir3/my.file.txt可以用${ }分别替换得到不同的值:${file#*/}:删掉第一个 / 及其左边的字符串:dir1/dir2/dir3/my.file.txt${file##*/}:删掉最后一个 /  及其左边的字符串:my.file.txt${file#*.}:删掉第一个 .  及其左边的字符串:

2016-09-27 09:51:39 584

原创 git手记

git init                                                         :  改变目录成git 可以管理的仓库git  clone  git@server:/srv/sample.git      :克隆远程仓库到本地git  add  test.txt                                    

2016-08-17 16:10:37 358

原创 puppet 命令详解

puppet master 主要命令--daemonize         // -D 发送到后台守护进程,默认选项--no-daemonize   // 不发送到后台守护进程--debug                // -d 启用完整的调整模式--logdest               // -1日志发送方式,默认采用syslog配置--verbose      

2016-08-17 16:05:08 5901

转载 针对域名做iptables

前景:很偶然,由于业务需求,需要对现有的一台核心设备做安全防护,然后第一念头就想到了iptables,接着全网统计ip段,各种INPUT链各种添加规则,很兴奋的就上了线。第一天运行正常,没有发现异常。第二天,开始有调用方反馈自己调用接口未成功,第一想法就是iptables应该是有问题的,在和研发人员一路排查的时候,发现所有的调用都拥塞了,out的数据都没有问题,但是返回的数据全部拒掉了

2016-07-28 15:28:33 11767 3

原创 CDN 原理

CDN概述        CDN的全称Content Delivery Network,(缩写:CDN)即内容分发网络。       CDN是一个经策略性部署的整体系统,从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均而产生的用户访问网站响应速度慢的根本原因。       CDN目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络“边缘...

2016-03-22 09:49:08 783

原创 python 线程、进程和协程

一:线程基础:线程与进程的不同之处在于,它们共享状态、内存和资源。对于线程来说,这个简单的区别既是它的优势,又是它的缺点。一方面,线程是轻量级的,并且相互之间易于通信,但另一方面,它们也带来了包括死锁、争用条件和高复杂性在内的各种问题。幸运的是,由于 GIL 和队列模块,与采用其他的语言相比,采用 Python 语言在线程实现的复杂性上要低得多。1:线程分为5种状态Th

2016-03-21 14:29:15 647

原创 python socket

一:socketsocket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字"向网络发出请求或者应答网络请求。socket起源于Unix,而Unix/Linux基本哲学之一就是“一切皆文件”,对于文件用【打开】【读写】【关闭】模式来操作。socket就是该模式的一个实现,socket即是一种特殊的文件,一些socket函数就是对其进行的

2016-03-09 13:32:16 477

原创 python 面向对象编程-进阶篇

一:类的成员类的成员可以分为三大类:字段、方法和属性1:字段字段包括:普通字段和静态字段,他们在定义和使用中有所区别,而最本质的区别是内存中保存的位置不同,普通字段属于对象静态字段属于类字段的定义与使用class Province: # 静态字段 country = '中国' def __init__(self, na

2016-03-09 10:23:26 507

原创 python 面向对象编程-基础

首先先来对比一下之前学习的内容:面向过程:根据业务逻辑从上到下写垒代码函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可面向对象:对函数进行分类和封装,让开发“更快更好更强...”面向过程编程最易被初学者接受,其往往用一长段代码来实现指定功能,开发过程中最常见的操作就是粘贴复制,即:将之前实现的代码块复制到现需功能处,再来回忆一下当初学习时的监控报警的代码:

2016-03-08 17:07:34 560

翻译 python 算法基础查找和二维数组转换

算法基础:生成一个4*4的2维数组并将其顺时针旋转90度array=[[col for col in range(4)] for row in range(4)] #初始化一个4*4数组#array=[[col for col in 'abcde'] for row in range(5)]for row in array: #旋转前先看看数组长啥样    print(row)pr

2016-02-17 15:12:36 1135

原创 python 内置模块

一:os模块,用于提供系统级别的操作os.getcwd()             获取当前工作目录,即当前python脚本工作的目录路径os.chdir("dirname")      改变当前脚本工作目录;相当于shell下cdos.curdir               返回当前目录: ('.')os.pardir               获取当前目录的父目录字符串

2016-02-16 21:38:00 3171

原创 python 正则表达式

正则表达式简介:正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分强大。得益于这一点,在提供了正则表达式的语言里,正则表达式的语法都是一样的,区别只在于不同的编程语言实现支持的语法数量不同;但不用担心,不被支持的语法通常是不常用的部分。如果已经在其他语言里使用过正则表达式,只需要简单看一看就可以上手了。re 模块使 Pyt

2016-02-16 21:21:49 418

原创 python 递归和装饰器

一:递归特点递归算法是一种直接或者间接地调用自身算法的过程。在计算机编写程序中,递归算法对解决一大类问题是十分有效的,它往往使算法的描述简洁而且易于理解。递归算法解决问题的特点:(1)    递归就是在过程或函数里调用自身。(2)    在使用递归策略时,必须有一个明确的递归结束条件,称为递归出口。(3)    递归算法解题通常显得很简洁,但递归算法解题的运行效率较低。所以

2016-02-01 20:04:19 767

原创 python 模块概述

模块,用一砣代码实现了某个功能的代码集合。 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合。而对于一个复杂的功能来,可能需要多个函数才能完成(函数又可以在不同的.py文件中),n个.py文件组成的代码集合就称为模块。使用模块有什么好处:1:大大提高了代码的可维护性,次,编写代码不必从零开始。当一个模块编写完毕,就可以

2016-02-01 14:27:19 480

原创 python 迭代器与生成器

一:迭代器迭代器是访问集合内元素的一种方式。迭代器对象从集合的第一个元素开始访问,直到所有的元素都被访问一遍后结束。迭代器不能回退,只能从头到尾往前进行迭代。这并不是什么很大的缺点,因为人们几乎不需要在迭代途中进行回退操作。迭代器也不是线程安全的,在多线程环境中对可变集合使用迭代器是一个危险的操作。但如果小心谨慎,或者干脆贯彻函数式思想坚持使用不可变的集合,那这也不是什么大问题。对

2016-02-01 14:24:23 351

原创 python 条件判断与循环

条件判断:当我们开始编写一个程序时,肯定会遇到要求程序能根据不同的条件做出相应的动作,这时我们就需要使用计算机语言的最基本的逻辑控制if.else语句来实现了Python 中的if 语句由三部分组成,关键字本身,用于判断结果真假的条件表达式,以及当表达式为真或者非零时执行的码块。1:格式如下:ifexpression:    expr_true_suiteif 语句的e

2016-01-25 21:02:26 672

原创 python 文件操作

Linux下万物皆文件,所以处处都要遇到对文件的处理操作,win 系统下也一样,更何况python 的跨平台如此强大了:今天我们来了解python 对文件的操作1:读文件要以读文件的模式打开一个文件,使用python 内置函数open(),格式如下f= open("test.open.txt",'r')   ###   open函数("文件名","打开文件使用的模式)  如果文件不

2016-01-25 20:52:42 413

原创 python collections 系列

Collections :collections 模块包含了内建类型之外的一些有用的工具,例如 counter,defaultdict,orderedDict,deque,以及nametuple ,其中counter,deque以及defaultdict是最常用 的类1:计数器(counter)如果你想统计一个单词在给家的序列中一共出现了多少次,诸如此类的操作就可以用到counter,来看

2016-01-25 20:37:10 601

原创 python set集合

说明:集合对象是一组无序排列的哈希的值,集合成员可以做字典中的键;集合支持用in 和not in 操作符检查成员,由len()内建函数得到集合的大小,用for 循环迭代集合的成员,但是因为集合无序,所以不能通过创建索引或执行切片操作,也没有键可以用来获取集合中元素的值。除无序以外,集合内的元素不能重复集合分为可变集合(set)和不可变集合(forzenset)。对于可变集合,可以用来添加和

2016-01-25 11:30:18 379

原创 python dict 方法

说字典方法之前,我们先来说几个巧用字典取值的方法1:d = {'name':'zhang','age':25,'job':'IT'}### 第一种方法for key1in d:    print(key1,d[key1])####  输出结果age 25job ITname zhang 2:d = {'name':'zhang','a

2016-01-22 16:03:40 568

原创 python tuple 方法

元组:元组的可使用方法没有list 和str这么多:1: tuple ---: 类方法,转换为元组类型classtuple(object):    """    tuple() -> empty tuple    tuple(iterable) -> tupleinitialized from iterable's items        If the arg

2016-01-22 14:46:54 320

原创 python list方法

列表的使用方法:1: list --à list的类方法classlist(object):    """    list() -> new empty list      ###  一个空列表    list(iterable) -> newlist initialized from iterable's items转换为一个新列表    """ 2:ap

2016-01-22 14:29:46 430

原创 python str 方法

字符串的方法较多,字符串也是python中最为重要的一个数据类型1:str --à转换为str 类型classstr(object):    """    str(object='') -> str    str(bytes_or_buffer[, encoding[,errors]]) -> str        Create a new string objec

2016-01-21 21:40:10 8186

原创 python float类型使用方法

今天我们来看看python 中float 方法1: 获取值的最简化结果defas_integer_ratio(self):# real signatureunknown; restored from __doc__    """    float.as_integer_ratio() -> (int,int)        Return a pair of inte

2016-01-21 15:25:45 12754

原创 python int方法

整数类型中int 的使用方法同样目地的使用方法只列出其作用,还有部分未测试出到底为了实现什么样的目标,测试完已崩溃。为什么很多种方法结果一样,为什么很多种结果莫名其妙........... 详细 bit_lengthdef bit_length(self): # real signature unknown; restored from __doc__    """     

2016-01-19 17:35:06 3738

原创 python 函数

Python的函数是由一个新的语句编写,即def,def是可执行的语句--函数并不存在,直到Python运行了def后才存在。函数是通过赋值传递的,参数通过赋值传递给函数函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数

2016-01-19 13:19:26 823 1

原创 python浅拷贝与深拷贝

对于数字,字符串,赋值,浅拷贝,深拷贝无意义,因为其永远指向一个内存地址:下面分别对这些数据类型进行测试importcopy######## 数字a = 1a1 = a                 ###赋值a2 = copy.copy(a)      ###浅拷贝a3 = copy.deepcopy(a)  ###深拷贝 

2016-01-19 10:20:44 468

转载 python 字符编码

字符编码ASCII :单字节编码,而单字节可以表示256个不同的字符,因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),如果要表示更大的整数,就必须用更多的字节。比如两个字节可以表示的最大整数是65535,4个字节可

2016-01-18 18:00:27 416

原创 python 数据类型及运算符

在说数据类型之前我们简单来说一下对象Python 使用对象模型来存储数据,构造任何类型的值都是一个对象。所有的python 对象都拥有三个特性:身份,类型和值。身份:每一个对象都有一个唯一的身份标识自己,任何对象的身份可以使用内建函数id()得到,这个值可以被认为是该对象的内存地址。类型:对象的类型决定了譔对象可以保存什么类型的值,可以进行什么样的操作,以及遵循什么样的规则,可以使

2016-01-18 17:45:27 1053

翻译 python 内部执行原理

过程概述:Python 先对脚本内容做词法和语法分析,然后把代码(.py)文件,交给字节码虚拟机,然后虚拟机一条一条执行字节码指令,从而完成程序的执行。字节码在python 虚拟机程序里对应的是PyCodeObject对象。.pyc文件是字节码在磁盘上的表现形式。Pyc文件PyCodeObject对象的创建时机是模块加载的时候,即import。Pythontest.py会对

2016-01-18 16:44:46 570

原创 python 脚本风格

每个人都有自己的编程风格,本文的风格介绍只做指南作用,没有强制概念,当然,良好的脚本内容可读性更高1:起使行2:模块文档3:模块导入4:变量定义5:类定义6:函数定义7:主程序1:解释器:通常只有类unix系统中需要,指定解释器就能够仅输入脚本名字来执行脚本,无需直接调用解释器2:模块说明:简要介绍模块及脚本的功能及重要全局变量及含义,模块可通过mo

2016-01-18 15:26:52 1155

原创 python 变量

Python 使用 “=” 做赋值操作符变量名 = 值变量名:必须是大小写英文,数字或_的任意组合,且不能以数字开头另外python 内置关键字不能做为变量名值可以是任意数据类型例:a = 5b = 'helloworld'c =[1,2,3,4,]d = {'zhang':23,'li':18}我们来执行一下看print(type(a))

2016-01-18 15:03:24 383

原创 运行python

初学者可以通过最简单的交互式方式来启动解释器,每次输入一行python代码,然后解释器执行,当你足够熟悉以后,可以直接编写python脚本,通过指定解释器来调用python解释器,当然,你也可以使用集成开发环境中的图形用户界面运行python,这些集成开发的程序带来了快捷,方便的使用体验。Hello World 程序(以下测试我们都将使用python的3.x版本)使用python 内置的p

2016-01-18 12:02:22 487

原创 下载和安装python

Python 官网 https://www.python.org这里可以下载python 最新的源码,二进制文档,当然也包括安装的方法,这里就不做详细介绍了 由于python的跨平台特点,所以python 支持在很多平台安装及运行1.        Unix (Solaris, Linux, FreeBSD,AIX, HP/UX, SunOS, IRIX, 等等。)2.

2016-01-18 11:38:03 524

原创 python 世界

什么是pythonPython 是一门优雅而健壮的编程语言,它继承了传统编译语言的强大性和通用性,同时也借鉴了简单脚本和解释语言的易用性,它可以帮你完成工作,而且一段时间后,你还能看明白自己写的这段代码,你会对自己如此快地学会它和它强大的功能感到十分的惊讶,更不用提你已经完成的工作了,只有你想不到,没有python做不到。Python的起源Pyhon 在1989年年底被Guid

2016-01-18 09:52:48 329

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除