自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(98)
  • 资源 (22)
  • 收藏
  • 关注

原创 手写LRU

手写LRU1.要求put / get 均是 O(1) 时间复杂度 超出容量自动删除最老数据2.用什么数据结构?任意查找要求 O(1),必然有哈希 时间需要有序,必然链表或者数组 由于删除需求,也要控制在O(1),数组淘汰 由于单链表删除节点,需要寻找前驱,并非 O(1),所以单链表淘汰 所以结论,哈希(key-->node) + 双链表,哈希存key维持映射关系,双链表维持时序以及val 3.进一步,链表的Node定义是? 初版 class Node(o

2020-06-30 17:06:15 269

原创 用户评分系统设计与实现(风控方向)

用户评分设计与实现(风控方向)维度 == 标签,泛指描述恶意行为的一类合集,不必纠结文中用词,看官就当做一回事, 就是你理解的那回事就行。不区分维度 不管你是IP维度、设备维度、xxx维度,只要能描述恶意倾向就算 不面向维度 不面向某一维度打分,只面向用户 不绝对公平 不同维度之间的权重可能失衡,由基准分控制,或者说由“业务专家”配置;但保证在相同业务场景下相同标签,恶意次数、最...

2019-01-22 18:13:06 7790

原创 python内存管理--分层分配

1.分层分配层级 内容   字典,元祖,列表,字符串.....等等python对象 第3层 对象特有的内存分配器(比如聚合对象) 第2层 python对象分配器 第1层 python低级内存分配器 第0层 glibc的malloc 第-1层 操作系统虚拟的内存管理器 第-2层 物理内存 2.第0层 glibcl...

2018-07-18 16:56:41 1082

原创 垃圾回收算法概要

标记-清除法问世最早的GC算法,分为标记和清除2个阶段.标记 从根对象开始递归标记所有能访问到的对象,这些对象就是活动的. 递归过程可能是DFS或BFS清除 从堆首地址开始,遍历每个对象的标志位,如果不是活动的,就回收对象,具体表现是链接到空闲链表.下一次再分配时,直接从空闲链表里取. 清除阶段,堆越大,耗时越长,最大暂停时间就越大.有延迟清除法可以缓解最大暂停时间问题,每次只清除上一次

2018-01-07 15:44:25 384

转载 分布式事务简述

国际开放标准组织Open Group定义了DTS(分布式事务处理模型),模型中包含4个角色:应用程序、事务管理器、资源管理器、通信资源管理器四部分。事务处理器是统管全局的管理者,资源处理器和通信资源处理器是事务的参与者。J2EE规范也包含此分布式事务处理模型的规范,并在所有的AppServer中进行实现,J2EE规范中定义了TX协议和XA协议,TX协议定义应用程序与事务管理器之间的接口,而

2017-03-27 18:56:26 2227

原创 一个码农搬砖3年的总结

毕业三年了,搬砖生涯第一阶段已经结束,回顾一下纯粹技术学习方面的经历(不谈职场厚黑学以及政治话题,嘿嘿),仅与各位看官共分享,同进步在校重基础上面5个字,吐血箴言,别被导师忽悠,跟着做一些鸡毛项目校招笔试面试,绝大部分是基础知识加算法,项目经验只是附加项,从中观察你如何处理问题而已,仅仅是附加项说实在的,导师们那些破项目,除了忽悠学校经费,或者是外包,项目质量现在回过头看,完全渣渣

2016-08-18 11:42:57 6005 2

原创 nginx location介绍

nginx location配置看看文档都会,主要是记不住,写下来方便查询。主要是优先级要搞清楚,不然工程大了,匹配的莫名其妙。本文按优先级依次介绍。总述:精确匹配(=) > 正则匹配(~或~*) >否定式正则匹配(!~或!~*) > 通用匹配(/)。两种正则当中,区分大小写的优先级高,也就是不带*的优先级高1.精确匹配= 精确匹配location = / { #精确匹

2016-04-12 16:35:14 2156

原创 swap初探

swap初探线上机器不停发邮件报警,swap使用超过阀值。实在受不了邮件,决定干点运维的活。看看情况。查swap整体使用情况free -m最先最直接就是这条命令了,结果类似下图 total used free Swap: 34175 11374 22801sar -r(

2016-04-07 11:17:58 1044

原创 web网站优化

1.web前端优化减少http次数,比如合并css javascript文件使用浏览器缓存,静态文件设置http头Cache-Control和Expires属性。更新静态文件时,避免一次更新多个文件,应该一个文件一个文件间隔更新,避免用户浏览器的缓存大量失效,集中更新静态文件,造成服务器压力陡增启用压缩,文本压缩率比较高,压缩省带宽耗CPU,选择平衡点css先加

2016-03-04 14:46:45 1106

原创 Golang学习摘录(三)

golang学习笔记(三)方法(Method sets)The method set of any other type T consists of all methods declared with receiver type T. The method set of the corresponding pointer type *T is the set of all meth

2016-02-24 11:26:13 757

原创 python晦涩知识点(二)

声明:一些很无聊的Python填空题,要是面试遇到,不要犹豫,一巴掌甩过去,然后说:“老子大老远跑过来面试,衣服都湿了,你就给我看这个?”开玩笑啦,反正很不爽就是了1.count和len>>> x, y = ???, ???>>> x.count(y) > len(x)True意思是说有没有合适的x,y使得y在x中出现的次数大于x的长度。一般来说,字符串长度为5,我们会认为最多5个

2016-01-21 16:54:46 1926

原创 一些智力题解析

在不考虑极端情况,比如割不断,绳子过短没法割等等情景下:一根绳子两端拉直,割一刀只能成两段,仅一种情况。如果割两刀,则可以成三或者四段,有两种情况。现在问:一根绳子允许你割10刀,有多少种情况?最少:每次割一刀,只增加一段,就是不要把几段摆在一起一刀同时割,那么割N次,最少产生N+1段最多:每次都把前面的绳子摆在一起,一刀全部隔断,段数成倍增长,那么割N次,最多产生2的N次方段从N+1

2015-12-28 17:30:49 1614

原创 Golang学习摘录(二)

Golang学习二Full slice expressions切片操作Python a[low: high: direction]比如 a = [1, 2, 3], a[1:2:-1]负1表示反方向,结果是[3,2]Golang第三个不是表示方向:a[low : high : max],string类型切片不支持max操作。max参数用来指定返回的切片的容量

2015-11-30 16:36:37 1266

原创 Golang 学习摘录(一)

Golang 学习摘录学过C,python,或者Java之类语言再来学习golang应该是无压力,看看语法就能写。语法上比较特殊的如下:声明变量并赋值使用 :=a, b := 1, 2 //声明变量a,b,并且赋值1,2a = 2 //a赋值2if 不需要圆括号,并且可以执行表达式.for语句类似if x:=1; x}String()函数中如

2015-11-17 18:08:15 1181

原创 IO模型浅析

概述服务器端编程经常需要构造高性能的IO模型,常见的IO模型有四种:同步阻塞IO(Blocking IO):即传统的IO模型。同步非阻塞IO(Non-blocking IO):默认创建的socket都是阻塞的,非阻塞IO要求socket被设置为NONBLOCK。注意这里所说的NIO并非Java的NIO(New IO)库。IO多路复用也叫异步阻塞(IO Multipl

2015-10-15 16:00:54 837

原创 Python晦涩知识点

Python晦涩知识点1.is, id, ==is用来判断两个对象是不是同一个(同一个是指同一内存地址)>>> a = "sadasdasdasdas">>> b = a>>> a is b True # 很好理解,a, b指向同一个地址>>> a = 3>>> b = 3>>> a is bTrue # 原理同Java虚拟机常量池,Python也有

2015-02-27 16:25:15 3377

转载 深刻理解Python中的元类(metaclass)

类也是对象在理解元类之前,你需要先掌握Python中的类。Python中类的概念借鉴于Smalltalk,这显得有些奇特。在大多数编程语言中,类就是一组用来描述如何生成一个对象的代码段。在Python中这一点仍然成立:>>> class ObjectCreator(object):… pass…>>> my_object = ObjectCreator()>>> pri

2015-02-25 11:41:58 777

原创 彻底解决 error: Unable to find vcvarsall.bat

1.windows上做Python开发,搭环境还真不比Linux容易。error: Unable to find vcvarsall.bat这个错误眼熟吧?凡是安装和操作系统底层密切相关的Python扩展,几乎都会遇到这个错误。比如PIL, Pillow(两个图形库),greenlet以及其基础之上的eventlet, gevent微线程并发库等等。当然了有一些情况下,你不必彻底解决它,你可以

2013-12-21 22:21:24 146713 68

原创 golang defer实现

golang defer实现

2022-03-26 22:36:59 553

原创 golang T 和 *T的方法集是什么关系?

golang T 和 *T的方法集是什么关系?

2022-03-26 21:47:31 1008

原创 vm虚拟机访问外网或暴露服务给外网访问

vm虚拟机访问外网或暴露服务给外网访问 Vm常用网络设置解释 桥接:虚拟机跟宿主机处于同一网段(二者不是嵌套关系,是并列),前提是你宿主机所在局域网你有多余1个的IP,否则可能IP冲突。此外,需要手工为虚拟系统配置IP地址、子网掩码,且注意和宿主机器处于同一网段。 NAT:由vmware完成网络地址转换,最简单,无需额外配置,确保宿主机上VMware NAT Service和VMwa...

2019-03-27 11:54:32 26127 1

原创 风控标签

前文说了一套用户评分逻辑,对着基本能做出个demo来,但要想这套系统更精确的描述用户好坏,则需要一批充足的基础标签。本文就是共享一些每家公司都可以做的标签。1.IP相关总的来说就是用户的请求来自一些已知的恶意IP,比如 代理IP登录、IDC IP登录、云商IP注册.....总之格式 “{IP类型}{业务节点}”,至少可以搞十来个标签没问题吧至于IP类型的知识,可以度娘,可以ip...

2019-01-24 16:50:04 2916

原创 pyflame入门

安装yum install autoconf automakegit clone https://github.com/uber/pyflamecd pyflame/./autogen.sh./configure (MacOS出错Pyflame only supports Linux hosts)make && make install从https://github.c

2017-07-03 12:37:24 3797

原创 一行shell查看redis 连接数分布

背景线上某个redis连接数过万,老报警,于是产生刚需:快速知道某个redis的client分布. 用于快速找出连接数占用最多的客户端.shell习惯python的老司机处理这点小事,那还不是手到擒来.可是偶尔不也想装个逼,用shell么?先上代码,接着解读#!/bin/bashhost=$1 port=$2echo $host: $port redis-cli -h $host -p $po

2017-06-20 14:45:51 18405 1

转载 正则表达式回溯

前几天有小伙伴来求救说页面上有一个 input 框,随着用户不断输入内容,页面响应会越来越慢直到完全失去响应。简单沟通过后得知具体场景是这样的:input 框中允许用户输入一连串逗号分隔的商品id在用户输入的过程中实时检测用户输入的内容是否符合规则,若不符合则给出提示信息小伙伴的解决方案也很直接:给 input 框绑定 keyup 事件。在 keyup 事件回调函数

2017-06-02 15:12:07 6493

原创 搬砖漫谈

写在前面:本文不比较谁是最好的语言?仅仅是一个python为主的码农的所思所想.以及准备押宝golang. 并不是为了宣传golangpython工作现状初级这个阶段很容易,找个活人,看会语法,都能写python.一般也就是web开发,比如django, flask, tornado之类,写的好点的用异步,协程,写的差的同步,线程.同时配合系统业务,使用周边扩展包,比如re

2017-04-20 17:10:20 1556

原创 tcp_tw_recycle和tcp_tw_reuse

tcp_tw_recycle和tcp_tw_reusetcp TIME_WAIT进入主题前必须做铺垫啊,讲讲TIME_WAIT.因为TCP连接是双向的,所以在关闭连接的时候,两个方向各自都需要关闭。先发FIN包的一方执行的是主动关闭;后发FIN包的一方执行的是被动关闭。主动关闭的一方会进入TIME_WAIT状态,并且在此状态停留两倍的MSL(最大报文存活时间,一般Linux内核设置30秒)

2017-04-07 16:14:43 6460

原创 Bloom Filter简述

1.适用场景在极大的数据集合中快速查找某个元素是否存在,但是不要求100%正确.这个是文绉绉的说法,说人话:一个很理想的场景:分布式缓存缓存的数据可能很大,QPS也相当的高,比如千万级,那么一般这个缓存集群就会达到近百台机器的规模.能不能少点机器呢? 毕竟找老板要这么多机器,不容易啊,动不动就是KPI导向!这个时候Bloom Filter就可以上场了2.横向对比为了查找某元素是

2017-04-01 15:54:57 441

原创 小实验:Broken pipe和Connection Reset by Peer

网络开发常遇到Broken pipe和Connection Reset by Peer两个错误,一直没有深究其差别,只是笼统的知道是对方关闭了socket,做好异常处理就行.这两天刚好徒弟问到,猛地发现我竟无力解释,决定深究深究1.基本原理要说原理嘛,大家都能知道,就是TCP的三次握手和四次挥手,关于这个网上图形解说一大把,随意搜索,简述三次握手client说 SYN,

2017-03-31 15:50:02 2809 1

转载 TCP/IP摘要

TCP/IP是互联网的基础协议栈,它包括大大小小几十个协议。本篇文章主要涉及到就是HTTP、TCP、IP协议。我们经常学的网络模型是七层或者五层,实际上一般认为一共只有四层就可以了。 Application layer ->HTTP-------------------------- Transport layer

2017-01-16 12:22:31 1974

转载 消息队列设计精要

消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。当今市面上有很多主流的消息中间件,如老牌的ActiveMQ、RabbitMQ,炙手可热的Kafka,阿里巴巴自主开发的Notify、MetaQ、RocketMQ等。本文不会一一介绍这些消息队列的所有特性,而是探讨一下自主开发设计一个消息队列时,你

2017-01-04 11:22:52 668

转载 tcp自连接问题

今天在Segmentfault上有人提问了一个tcp自连接问题,这里记录下。所谓tcp自连接,就是出现源ip和源端口通目的ip和目的端口完全相同的情况,乍看起来不可思议,细细一想情理之中,本文重现下这种连接,并且说下解决思路。现象重现在linux主机下运行下面的python脚本,等待一会即可出现。import socketimport timeconnecte

2016-12-29 18:36:37 1648

原创 关键字杀进程

不做运维,linux基础还真不如运维同学犀利,再次受教了,总结一下背景经常多进程部署服务,restart, stop时需要根据关键字搜索出这一组进程,杀掉比如:python dir/tcp_server.py &多次执行起了多个进程,现在希望搜索dir/tcp_server.py 杀掉这组进程CUTps -ef | grep dir/tcp_server.py | grep -

2016-12-28 14:56:54 693

转载 MySQL大表优化方案

当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化:单表优化除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑、部署、运维的各种复杂度,一般以整型值为主的表在千万级以下,字符串为主的表在五百万以下是没有太大问题的。而事实上很多时候MySQL单表的性能依然有不少优化空间,甚至能正常支撑千万级以上的数据量:字段尽量使

2016-12-27 11:48:18 593

转载 单点登录原理与简单实现

SSO并不复杂,开源实现很成熟,一直想写一篇文章总结,看到此文,决定就它了,转过来,记录一下一、单系统登录机制1、http无状态协议web应用采用browser/server架构,http作为通信协议。http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明,三次请求/响应对之间没有任何联系但这也同

2016-12-23 16:25:16 1905

转载 linux IO模型与AIO

AIO 简介Linux 异步 I/O 是 Linux 内核中提供的一个相当新的增强。它是 2.6 版本内核的一个标准特性,但是我们在 2.4 版本内核的补丁中也可以找到它。AIO 背后的基本思想是允许进程发起很多 I/O 操作,而不用阻塞或等待任何操作完成。稍后或在接收到 I/O 操作完成的通知时,进程就可以检索 I/O 操作的结果。I/O 模型在深入介绍 AIO API

2016-12-15 12:31:11 3467

转载 100亿次的挑战:如何实现一个“有把握”的春晚摇一摇系统

100亿次的挑战:如何实现一个“有把握”的春晚摇一摇系统原创 2016-12-04 张文瑞 微信后台团队这是2015年年初(羊年春晚)摇一摇活动的技术复盘文章。在两年之后再次温习,有很多架构上的取舍仍然可以给类似的活动参考,因此重新发出来。羊年春晚摇一摇活动已经落下帷幕,现在回过头来看看这一全民参与的有趣的活动背后,有着怎样的后台系统?这个系统又是如

2016-12-14 15:45:53 952

转载 分布式事务2PC && 3PC

分布式二阶段提交(Two-phase Commit)是指,为了使基于分布式系统架构下的所有节点在进行事务提交时保持一致性而设计的一种算法(Algorithm)。通常,二阶段提交也被称为是一种协议(Protocol)…在分布式系统中,每个节点虽然可以知晓自己的操作时成功或者失败,却无法知道其他节点的操作的成功或失败。当一个事务跨越多个节点时,为了保持事务的ACID特性,需要引入一

2016-11-24 17:47:05 6005

原创 python3.5协程

py2.x协程yield:py2.x的协程都是通过yield生成器来实现的,可以说是模拟的协程(不能跨堆栈),yield可以暂停函数执行,send通知函数继续往下执行,并提供给yield值,yield和send这种交互就构成了协程的基础.2.x系列理解yield就理解协程,参考http://blog.csdn.net/secretx/article/details/43969101

2016-11-17 12:42:41 2661

原创 剑指offer之O(1)删除单链表节点

1.单向链表删除指定节点常规思路:从头遍历到指定节点前一个节点Pre,然后将Pre的next指向指定节点的下一个,删除指定节点即可。O(n)将指定节点下一个的内容复制到指定节点,然后删除其下一个节点。O(1)2.代码void deleteNode(ListNode **head, ListNode *toDelete){ if(!head ||

2016-11-07 11:21:12 1064

python调用java,开发jbpm6.0.0工作流Application

一个简单的maven工程,展示了Python直接调用Java代码,以及Java SE Application集成JBPM6.0完成工作流

2014-08-25

pydev2.7插件

eclipse的Python插件,安装后可以用eclipse开发Python代码.下载后使用.link文件方式安装。不知道eclipse的.link方式安装插件,自己百度查查吧。或者看我博客也行

2013-11-25

struts-2.1.dtd

struts-2.1.dtd 解决断网struts项目启动失败问题 知道这个文件的就不用多说了

2013-06-15

房地产销售系统源码

房地产销售系统源码,python2.7 django1.5 房地产在线交易源码 适用于毕设 课程设计

2013-06-15

Ajax参考手册.chm

Ajax参考手册.chm 中文班 API参考

2013-06-15

J2EE APi 参考手册

java-ee.chm 中文版 APi参考手册

2013-06-15

JavaScript参考手册.chm

JavaScript参考手册.chm 中文版

2013-06-15

spring源码

spring源码,解压后Myeclipse直接导入工程即可,版本2.5.6 很适合阅读spring源码

2013-06-15

properties editor

Myeclipse插件 用于编辑properties 文件 ,安装方法解压即可看到

2013-06-15

EditPlus_3破解版

EditPlus3破解版 强大代码编辑器

2013-06-15

捷客商务信息交易平台

源码+数据库文件 中软实习的训练项目 小的商城(网店)。时间很赶,做得很一般,没有写店铺(含商品)的管理,有兴趣的可以学习包中XXXlist.jsp然后仿照写一个 shoplist.jsp goodslist.jsp即可。后台已提供支持。只是没有写页面。

2012-07-07

食品安全优秀论文4000字

食品安全优秀论文4000字 选修课必备

2011-12-06

tcnative-1.dll

解决Hibernate ARP报错。版本1.22 tcnative-1.dll

2011-12-05

最新Struts官方完整包

本来不打算上传的,官网上免费有,下载很简单。但是很多人问,就贡献一个。原包大于60M不能上传(60M限制),我把里面apps文件夹以下删除了。没什么用,产品介绍而已。所有jar包 源码 手册 齐全就OK

2011-11-13

Java面试特别包

java面试宝典2011 和 java面试经典125题 每个1分,那个实录就当赠品。 Java 方向就业,必看。需要的自己下,觉得不好,记得差评。

2011-11-06

Spring3.1.0官方完整包

Sping3.1.0官方完整包,没有任何更改。绝对与官方发布一致。学三大架构的自己进来。已经贡献了最新的Spring3.1.0和Hibernate4.最新Struts稍后。

2011-11-03

Struts+Hibernate版BBS论坛

Struts+Hibernate版BBS论坛,实现了论坛基本功能,整套工程源码,拿过去就可以用。数据库配置,建表,均已在里面说明。傻瓜都看的懂。还是老话,学三大架构的,自己进来下载。觉得不好,再给差评。

2011-10-28

最新Hibernate所有jar包

看名字就懂了。学三大架构的就自己进来下载

2011-10-21

HBUT电子实习EDA整套源码

湖工EDA实习整套源码。内有使用说明,现象描述,原工程。看看现象描述,就知道是不是你想要的。湖工学生,拿过去,EDA整套解决。轻松及格。 湖工EDA实习,居家必备。

2011-10-18

数据结构各项重点代码全集

数据结构 整套所有代码 单双循环链表,栈,队列,树图基本,AOV,AOE,部分图实验

2011-06-23

21位水仙花数JAVA代码

3秒钟 搞定 求解21位 水仙花数 超级代码

2011-05-16

清华优秀毕业论文尤少迪

基于图谱理论和局部线性嵌入的流形拓扑多分辨率分析方法 清华 尤少迪

2011-05-16

空空如也

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

TA关注的人

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