自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 收藏
  • 关注

原创 MySQL insert 死锁问题记录

MySQL insert死锁原因探究分析

2022-11-03 17:50:56 2782 2

原创 一些常用的按位小技巧

一些常用的按位小技巧按位与a & -a:a的二进制原码表示中最低有效位。 如5(101) --> 1(001),6(110) --> 2(010), 12(1100) --> 4(0100)a & a-1: 相当于 a - (a&-a),去掉最低有效位之后的值a& 1-a: 最右一位不参与运算,除去最右位后的最低有效位。对于奇数a来说相当于(a-1)&(1-a),对于偶数来说与a&-a相等。...

2021-03-06 18:18:37 172

原创 Python 自带的Enum优化

由于Python官方的Enum使用值时,写数据库等时需要加.value,容易引起问题,故而重写了enum。有一些兼容性代码,可以去掉,这里就不做优化了。# coding: utf-8"""Enum对象,由于python 提供的包enum34中的Enum、IntEnum在使用过程中容易出现忘记加.value后缀等情况,非常容易出现bug,比如在落库的时候,Enum类型的数据在做In判断的时...

2019-05-08 14:45:47 640

原创 SQLALCHEMY的JSON支持

解决5.6以下sqlalchemy不支持JSON的问题JSON是一种使用相当普遍的数据协议类型,对于保存数据十分方便,但是老版本的MySQL又不支持JSON格式,所以只能使用TEXT来保存JSON类型的字符串。原始方案对于字符串类型的JSON,在使用的时候必须进行一步转化,把字符串转化为Python中的DICT,为了能够方便的使用SQLALCHEMY,遂写了如下的方法:import jso...

2019-05-08 12:03:20 5793

转载 Django CSRF防御具体流程

Django CSRF防御具体流程Django CSRF防御具体流程主体部分转自上文。今天有人问到了Django的CSRF防御机制,由于之前没用过Django,所以上网搜了一下,感觉上文说的不错。这里简单的说一下流程。Django在客户端调用的时候,如果是第一次请求,那么会生成一个随机的csrf_secret,通过_salt_cipher_secret对csrf_secret操作来分别生成...

2018-11-06 18:18:46 228

转载 永远不要在 MySQL 中使用「utf8」

最近我遇到了一个 bug,我试着通过 Rails 在以「utf8」编码的 MariaDB 中保存一个 UTF-8 字符串,然后出现了一个离奇的错误:Incorrect string value: ‘\xF0\x9F\x98\x83 <…’ for column ‘summary’ at row 1我用的是 UTF-8 编码的客户端,服务器也是 UTF-8 编码的,数据库也是,就连要保...

2018-07-19 18:07:27 256

原创 Go踩坑之:defer

这个是之前遇到的一个问题,今天想起来了,闲来无事也就记录一下吧。下面的代码有什么问题吗:f, err := os.Open(filename)defer f.Close()if err != nil { return nil, err}在刚接触Go的时候,这块儿代码乍一看是没问题的,但是运行的时候就会报错,这么简单的代码在当时的自己看来是没有理由出错的。这里就...

2018-03-28 18:07:15 351

原创 为什么要用Nginx反向代理

之前看过阿里巴巴 陶辉写的《深入理解Nginx:模块开发与架构解析》,里面也提到了这一点,今天突然想到了,就回顾记录一下,有可能说的不全。nginx反向代理为什么能降低上游服务器的负载。一般来说公网延迟高,客户端与nginx之间的请求连接走公网,nginx先把这些请求缓存住,等这些请求数据全部完成之后nginx再向内网服务器请求,降低公网网络延迟成本,同时也降低一个连接占用服务端程序的时间...

2018-03-01 19:05:39 9769

转载 Moore majority vote algorithm(摩尔投票算法)

Boyer-Moore majority vote algorithm (摩尔投票算法) 简介Boyer-Moore majority vote algorithm(摩尔投票算法)是一种在线性时间O(n)和空间复杂度的情况下,在一个元素序列中查找包含最多的元素。它是以Robert S.Boyer和J Strother Moore命名的,1981年发明的,是一种典型的流算法(streaming

2018-02-05 10:55:21 373

原创 Go踩坑之 time.Parse: month out of range

在用Go语言对时间字符串进行parse的时候,经过 试验,“2016-12-25 00:00:00”这种格式是可以的, “2016-12-25“这种格式在试验的时候可以,然而在某些情况却会报错,比如说 当parse”2018-01-28”的时候,就会报 “month out of range”.原因不清楚,需要继续看源码研究,所以以后parse的时候,使用time模块自带的那几种格式,和

2018-02-02 20:22:47 4862 1

原创 高并发和大数据的一些小trick

之前看书或者浏览博客中遇到过的一些有趣的题,记录下来。在阅读《MySQL高性能》这本书索引部分的时候,看到其中某一段描述,大意是:在数据量大的情况下,可以对某个键做hash,求出hashcode,然后对hashcode做索引。数据量大了,直接用B+树索引的话,搜索会变的很慢,比如说数据量上亿条,B+索引就会很慢;而如果换一种思路,不直接对之间的key字段建立索引,而是根据某种规则,让对

2018-01-29 22:01:21 332

原创 关于Unicode

记得之前写过,但没找到,应该是自己记错了吧Unicode基本概念网上很容易得到,就是全球统一的字符集 UCS-1, UCS-2,UCS-4(实际上是没有UCS-1的,但ascii可以当成是UCS-1),分别是占用一个字节,两个字节,4个字节的表示。Python3内存中存的字符串默认都为unicode,并且做了如下优化。如果字符串中最高含有UCS-4字符,那么每个字符串都占用4个字...

2017-12-11 11:22:59 292

原创 MySQL主从复制配置及步骤

MySQL主从复制配置及步骤

2017-11-08 13:42:03 362

转载 《流畅的Python》

python是一门即容易上手又强大的语言总结的很不错的一篇文章,大多数Python的特性都提到了,适合Python进阶者阅读:《流畅的Python》

2017-10-17 10:45:07 1157

原创 简单记录N个动态规划的例子

通过最近对于一些算法题的思考,越来越发现动态规划方法的在时间上高效性,往往该问题可以轻松的找到暴力破解的方法,其时间复杂度却不尽人意。

2017-06-18 22:21:51 1014

转载 Python运行机制以及pyc/pyo文件的作用

作为Python爱好者,需要了解.py脚本的基本运行机制及特性

2017-06-08 12:22:53 9591 1

转载 Linux IO模式及 select、poll、epoll详解

Linux IO模式及 select、poll、epoll详解非常不错的一篇文章,可以很好的理解IO多路复用。不过对于新手还是有一定的难度。这里提一点:IO多路复用与同步IO的最大区别在于,IO多路复用同时监听多个连接的时候不会阻塞在某一个连接上,只要有可用的连接就不会阻塞。下面这篇文章也可以辅助进行参考:IO多路复用机制详解

2017-06-07 20:01:43 406

原创 MySQL表为什么必须有主键 -- 聚集索引的简单介绍

比较规范的数据库表设计(包括我们公司)都会有一条不成文的规定,那就是给每张表一个自增主键。那么自增主键除了有数据的唯一性外,还有什么所用呢?为什么要有自增主键?

2017-03-06 15:40:49 19134 6

原创 Python 异步随笔

简单的记录一下,以后会详细研究。

2017-02-27 10:15:57 2092

转载 58到家数据库30条军规解读

58到家数据库30条军规解读军规适用场景:并发量大、数据量大的互联网业务

2017-02-16 10:15:30 476

原创 Mysql为什么不建议使用join

首先,你需要知道join的语法:Mysql Join语法解析与性能分析 事实上,用分解关联查询的方式重构查询有如下的优势:让缓存的效率更高。许多应用程序可以方便地缓存单表查询对应的结果对象。如果关联中的某个表发生了变化,那么就无法使用查询缓存了,而拆分后,如果某个表很少改变,那么基于该表的查询就可以重复利用查询缓存结果了。将查询分解后,执行单个查询可以减少锁的竞争。在应用层做关联,可以更容易

2017-02-13 19:28:27 16721 2

原创 论一数据同步方案

数据同步方案过程与总结

2017-02-09 20:01:03 475

原创 Python 多进程使用中的一些记录

multiprocess的Daemon: 如果设置为True,则父进程不会等待子进程,直接结束 如果设置为False(默认值),则父进程等待子进程退出后结束有意思的是,如果Daemon为True,父进程退出后子进程也会跟着退出。Daemon进程不允许有子进程,一个Daemonic进程创建子进程会直接报错。Pool启动的进程全都是Daemon进程,所以不能创建子进程

2016-11-09 17:25:12 348

原创 Python内存结构

在Python中一切皆是对象,而在C语言中,这些对象只是一些复杂的结构体而已。下面介绍的是Python的一些对象在C中的结构(64位操作系统)。对象的两个基本属性 Python 所有对象结构体中的头两个字段都是相同的:refcnt: 对象的引用次数,若引用次数为 0 则表示此对象可以被垃圾回收了。(占四个字节)typeid: 指向描述对象类型的对象的指针。(占四个字节)整型和浮点型除了两个基

2016-06-12 11:13:40 517

原创 工作随想

入职一个月,学到了很多东西,同时也觉得需要学的东西越来越多,内功太差,需要不断修炼内功打好基础。感觉IT好比练功,外功短期见效快,而内功时间长了优势才会慢慢凸显。内功是基础,外功是技能,内功好了,外功修炼自然快,而外功多多修炼也能促进内功的增长。感觉自己是比较幸运的,遇到一群好同事,有他们的帮助,我的成长可以加快很多。要加快步伐了,努力学好技术,修炼武功,早日成为武林高手,好去江湖中闯荡一番!

2016-05-13 19:03:04 551

原创 python的魔术方法

__str__ 描述类的实例 __repr__ 描述类 __call__ 调用实例 __setattr__ 实例属性赋值__getattr__ 获取实例属性值

2016-05-03 15:56:28 382

转载 Linux makefile 教程 非常详细,且易懂

转自: Linux makefile 教程 非常详细,且易懂 跟我一起写 Makefile陈皓 (CSDN)概述 ——什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士

2016-04-15 00:55:17 531

原创 ubuntu 安装nodejs(很好用)

ubuntu安装nodejs最近在研究github的博客,以后的博客可能都会发表在github上。github上的博客用hexo来搭建,但hexo有依赖于nodejs,所以不得不安装nodejs。网络上的安装nodejs步骤有点复杂,还是这个简单明了,所以记录下来供大家参考curl -sL https://deb.nodesource.com/setup_5.x | sudo -E bash -a

2016-03-26 10:50:39 612

转载 构建高并发高可用的电商平台架构实践

前言:偶然看到了这片文章,里面大多数内容都还没掌握,在这里记下来也算给自己树立一个目标,鞭策自己能快速成长转载:构建高并发高可用的电商平台架构实践问题导读:1.如何构建高并发电商平台架构2.哈希、B树、倒排、bitmap的作用是什么?3.作为软件工程师,该如何实现读写?4.如何实现负载均衡、反向代理?5.电商业务是什么?6.基础中间件该如何设计?7.对于

2016-03-25 17:25:36 931

转载 Python装饰器九步入门

转载:Python装饰器九步入门写的很详细,很适合新手入门

2016-03-22 11:13:37 402

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

Python中的元类(metaclass)

2016-03-22 00:19:31 370

转载 Python PEP8编码规范整理

编程语言不是艺术,而是工作或者说是工具,所以整理并遵循一套编码规范是十分必要的。所以今天下午我根据PEP 8整理了一份,以后都照此编码了,还会持续更新。PEP8 Python 编码规范一 代码编排缩进。4个空格的缩进(编辑器都可以完成此功能)

2016-03-21 23:59:35 563

转载 MySQL性能优化

转载:文/清水先生(简书作者)原文链接:http://www.jianshu.com/p/5dd73a35d70f1、为查询优化你的查询 大多数的MySQL服务器都开启了查询缓存。这是提高性最有效的方法之一,而且这是被MySQL的数据库引擎处理的。当有很多相同的查询被执行了多次的时候,这些查询结果会被放到一个缓存中,这样,后续的相同的查询就不用操作表而直接访问缓存结果了。这里最主

2016-03-20 08:33:33 328

原创 Python多线程-join()

Python多线程-join()本文介绍介绍的是thread.threading的 join方法 join(timeout=None):

2016-03-17 10:14:25 552

原创 3个多月的实习体会与总结

本人于2015年11月1日开始在某互联网创业公司实习,担任python后台开发实习生实习前的水平

2016-03-04 11:40:54 2183 1

原创 python中 encode,decode,unicode,utf-8

以下是我对编码的一些体会,只是很简单的根据经验来写的,并没有深入研究编码问题。如果想要深入研究,可以看一看这篇文章UNICODE,GBK,UTF-8区别

2015-12-16 13:55:56 917

原创 python定义常量

python中没有定义常量,但可以自己定义一个类来设置常量# -*- coding: UTF-8 -*- # Filename: const.py class _const: class ConstError(TypeError):pass def __setattr__(self, name, value): if self.__dict__.has_key

2015-12-07 14:55:42 2723

原创 mac 给vim 配色

VIM默认配置下的语法高亮是没有打开的,面对一片灰色的字体实在不是什么让人愉悦的事儿,今天尝试了一下VIM配色,分享一下经验首先,再终端下可以使用 whereis vim找到vim的安装配置目录,其中/usr/share/vim/vim**/colors/目录下保存着一些配色方案然后再home目录下 vim ~/.vimrc"语法高亮"syntax on"显示行号"set number"

2015-12-02 10:54:10 310

原创 前台 post方法提交却变成了 get 方法

最近遇到了一个小麻烦,那就是我在 js 文件中用post 方法提交,到后台调用的却是get 方法,一开始还以为是\$.post()的一些参数问题,仔细看了一下\$.post()的说明,发现没有错误,顿时就郁闷了。 一直以为问题应该出在post()方法上面,所以也是各种查找post()的相关说明,折腾了好久-。-终于最后顺着自己设的一些断点查找问题,找到了 js 中的一个错误。 对于有

2015-11-18 09:48:52 16635 2

原创 js 函数参数

js 函数的定义和使用方法有很多,这里只记录一下函数参数的缺省问题如下一个带有三个参数的函数function myFunction(var1,var2,var3){ document.write(var1+var2+var3);}如果调用 myFunction( “firstName “,”lastName “) 会返回结果 firstName lastName undefined也就

2015-11-12 12:33:15 618

空空如也

空空如也

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

TA关注的人

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