加载中
flask与tornado解决并发处理请求

背景 Flask和Tornado都是使用Python编写的轻量级Web应用框架,另外Tornado的也是一个异步库。 flask处理并发 #!/usr/bin/python # -*- coding: utf-8 -*- ''' @author: xxx @date: 2021-01-...

解决 ImportError: No module named MySQLdb

python 脚本中引入MySQLdb的时候,经常会报错。之前在mac平台,windows平台,centos上都不太好安装,这里总结一下。 先按照下面的这些基础依赖: sudo yum install mysql-devel gcc python-...

01/26 16:12
29
如何清空git的commit记录

使用 git checkout --orphan new_branch ,基于当前分支创建一个独立的分支new_branch; git checkout --orphan new_branch 复制代码 添加所有文件变化至暂存空间 git add -A 复制代码 提交并...

01/21 15:48
14
openresty中关于url的处理

简单记录几个最近工作中常常用到的API: ngx.escape_uri(url加密), ngx.unescape_uri(url解密), ngx.encode_args(将lua中的table类型转为url中键值对的格式,例如,a=b&c=d ;), ngx.decode...

lua
2020/11/20 09:57
28
openResty中ngx.shared.DICT的用法

背景 最近遇到一种场景需要使用缓存,这里简单的总结一下,方便后面使用。 用法 第一步 在nginx.conf中添加, 根据实际情况调整大小 lua_shared_dict my_cache 128m; 第二步 写个工具类,如下...

2020/10/21 09:59
206
python 控制进程或者线程的个数

背景 日常开发中,难免遇到并发场景,而并发场景难免需要做流量控制,即需要对并发的进程或者线程的总量进行控制。 今天简单总结两种常用的控制线程个数的方法。 方法一:进程池/线程池 如下...

2020/10/16 10:28
1.3K
python3 解决动态创建多线程的问题

背景 最近有个需求,需要根据线程的返回结果,动态创建新的线程。传统的多线程模型只能够批量创建,然后等待结果,然后根据结果再批量创建新的线程。 而我想要达到的效果是先创建一批线程,例...

2020/10/15 10:18
71
python的互斥锁使用总结

背景 并发场景通常需要访问公共资源,为了保证数据的一致性问题,往往需要通过加锁实现 使用方法 先来看一个不加锁的场景,如下例demo所示,func1和func2分别对全局变量g_num一个加一,一个减...

2020/10/14 10:17
7
python GIL与并发问题

背景 最近在做一个项目,想要达到比较高的并发,然后简单实现了下,最后发现,占用的cpu很少, 然后我想到可能是因为GIL的缘故,于是简单的做了一下探索,总结如下。 什么是GIL GIL锁:Globa...

2020/10/13 09:55
12
mysql阻塞分析之show full processlist

show full processlist执行结果如下: 大多链接的 state 其实是 Sleep 的,这种的其实是空闲状态,没有太多查看价值 我们要观察的是有问题的,所以可以进行过滤: 过滤掉sleep状态的mysql线程...

2020/09/14 17:23
67
tcp发包失败问题定位

问题描述 最近遇到一个tcp发包失败的案例, 当发送比较大的包时,总是发送失败(connect timeout), 当发送的包比较小的时候,没有这个问题,说明网络是畅通的。 分析 思考了一下tcp请求的全...

2020/09/07 14:55
21
mysqldump使用总结

mysqldump备份db MySQL备份和还原,可以利用mysqldump、mysql和source命令来完成的。 # 第一步:mysqldump进行备份 mysqldump -h127.0.0.1 -P3306 -uroot -pyour_password db_name >/tmp/aaa....

2020/09/03 09:50
16
谈谈对CAP的理解

C(Consistency): 一致性,这个比较好理解,就是数据一致性, 分布式架构意味着有多个节点,每个节点如果保存相同的数据,就需要维护数据的一致性 A(Available): 可用性,这个也比较好理解...

2020/08/23 13:42
47
解决"is marked as crashed and should be repaired"故障

现象 exec failed:Table './xxx/xxx_Table' is marked as crashed and should be repaired 原因 具体原因我还不是很清楚,搜了下资料,有以下几种说法: 频繁更新表(这个我觉得不太靠谱,m...

2020/08/22 17:52
674
go fmt.Sprintf的性能分析

背景 最近在开发的项目,大量用到了fmt.Sprintf去做int/uint32/float 转string, 结果压测的时候竟然发现fmt.Sprintf耗时较大,有性能问题。 分析 通过查看fmt.Sprintf源码, 可以看出效率低...

2020/08/21 10:31
1.5K
Redis慢查询日志

背景 最近在做一个项目里用到了redis, 压力测试后遇到redis瓶颈,想到mysql有慢日志查询,于是搜了下redis的慢日志查询。 慢查询设置 slowlog-log-slower-than 选项指定执行时间超过多少微秒...

2020/08/21 10:09
29
Linux Shell中常用的符号含义

常见符号如下 /dev/null :代表空设备文件 > :代表重定向到哪里,例如:echo "123" > /home/123.txt 1 :表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null" 2 :表示...

mysql性能调优(一) explain命令

SQL执行过程 mysql执行流程如下图 SQL查询过程如下 客户端发送一条查询给服务器。 服务器先检查查询缓存,如果命中了缓存,则立刻返回存储在缓存中的结果。否则进入下一阶段。 服务器端进行S...

2020/08/04 11:37
50
Golang 轻量级(细粒度)锁的实现

背景 最近在项目中遇到一个多线程处理db的一个场景,就是Check-And-Set,需要先查看redis里的一个key值,然后根据查看的结果,决定是否更新,这是典型的容易导致并发脏数据的场景,多个gorou...

2020/07/19 11:01
659
nginx配置websocket代理

什么是websocket 传输层协议, 基于TCP, 类似http,与http不同的时候,websocket支持长链接,支持服务器可以往客户端推送 WebSocket是HTML5开始提供的一种浏览器与服务器间进行全双工通讯的...

2020/06/17 19:55
380

没有更多内容

加载失败,请刷新页面

返回顶部
顶部