如何在Python中引起内存泄露 前言 嗯,怎么看怎么像标题党写的标题……其实这篇文章只是笔者对Python中引用计数、弱引用的一些记录和思考,不涉及引用循环、分代回收等概念,先打个预防针。 注:本篇文章基于CPython 3.6,可能不适用于其它CPython版本或其它类型的Python实现。 引用计数引用计数(Reference counting)可以说是一个老生常谈的问题了,炒冷饭也没啥意思。引用一下《流畅的Python 2020-06-14 #Python #GC
如何高效地对100万个UUID进行前缀匹配查询 前言 在《Redis实战》这本书的第六章中,作者介绍了如何使用Redis的ZSET来实现通讯录自动补全(即前缀匹配查询)。这部分内容激发了我的兴趣,于是我借助这个机会抛出问题:如何高效地对100万个UUID进行前缀匹配,并尝试用这篇文章来解答。 数据准备首先是数据准备工作:生成100万个UUID、将其写入至Redis和MariaDB(后者可作为对比)。顺便一提,Redis和MariaDB均在笔者电 2020-06-13 #Redis #数据库 #算法
如何在Golang里实现一个高性能的TTLMap 前言TTLMap是一个比较实用的数据结构,特别是在需要缓存数据的场景下。TTLMap的实现现不算复杂,但也有许多需要注意的地方,这也是这篇文章出现的原因。 在TTLMap里,移除失效的数据有三种策略:立即删除、惰性删除和定期删除策略。立即删除策略会在数据过期时立即将数据删除;惰性删除策略只在碰到过期键时才进行删除操作;定期删除策略则每隔一段时间,主动查找并删除过期键。第一种策略对CPU不友好,第二 2020-05-24 #Golang #map
Django多数据库历险记(番外) 前情提要这篇文章基于前两篇文章Django多数据库历险记(一)、Django多数据库历险记(二),将继续讲述关于Django多数据库的历险记。好吧其实这篇文章的内容已经和Django多数据库没有太大关系了……只是为了和前两篇文章的命名保持一致才取了这个标题。 秘技:避免物理外键约束 对于数据库层面的物理外键,国内互联网上的声音普遍一致,那就是不推荐使用(比如这个知乎问题),公司的DBA也持这个态度 2020-05-02 #Web开发 #Python #Django #多数据库
Django多数据库历险记(二) 前情提要这篇文章基于上一篇文章Django多数据库历险记(一),将继续讲述关于Django多数据库的历险记。 在上一篇文章中,我创建了一个Django项目:multi_db,在这个项目里指定了两个app:app_1和app_2,每个app下各自创建了一个Model:Model1和Model2,并为这两个app各自分配了独立的数据库db_1和db_2。历险继续~ 第三关:TestCase在multi 2020-04-25 #Web开发 #Python #Django #多数据库
Django多数据库历险记(一) 前言毫无疑问,Django是最优秀的Python Web框架之一,然而其对多数据库的支持却让我内心十分复杂。在数据库迁移、跨库外键、单元测试等方面,坑无处不在。于是就有了这篇文章,关于Django多数据库的历险记。 注:本篇文章使用Python 3.6+Django 2.2 准备出发 创建Django项目multi_db和两个app:app_1和app_2 1234$ django-admin 2020-04-23 #Web开发 #Python #Django #多数据库
Django视图函数性能分析(续) 前言 在以前的文章中,我介绍了两种分析Django视图函数性能的工具:Django Debug Toolbar和cProfile中间件。在实际开发过程中,前者的SQL执行分析是相当实用的功能。 但美中不足的是,Django Debug Toolbar只能在浏览器里分析响应类型为HTML的视图函数,这就导致响应类型为JSON的视图函数必须要借助Django Rest Framework框架中的HTM 2020-04-19 #Web开发 #Python #性能分析 #Django
Golang极简实现WebSocket承载socks5流量 环境准备假设有一台远程服务器:1.2.3.4,上面运行着一个socks5代理:127.0.0.1:1080。登上这台远程服务器后,可以通过curl验证这个代理: 123456$ curl --socks5 127.0.0.1:1080 https://httpbin.org/get{ ... "origin": "1.2.3.4", ...& 2020-02-20 #nginx #websocket #socks5 #Golang
APT、Docker、PyPI使用国内镜像加速 前言 因为一些不可描述的原因,在中国绝大多数地区进行更新APT软件包列表(apt-get update)&安装APT软件包(apt-get isntall)、拉取Docker镜像(docker pull)、安装PyPI包(pip install)等操作都是一件非常痛苦的事:网络连接速度太慢了。万幸的是我们有许多开源软件镜像站点,合理设置镜像站点能够极大提升工作和学习效率。这篇文章介绍的就是 2019-12-17 #linux #网络优化
Docker快速部署ownCloud并配置HTTPS 前言ownCloud一直是市场上最受欢迎的个人云存储解决方案之一,有着使用广泛、客户端兼容性好、自由开源等优点。但ownCloud的部署涉及LAMP环境,部署过程较为繁琐。这篇文章介绍如何用docker-compose快速部署ownCloud,并配置Nginx转发+HTTPS提高服务器安全性。 配置docker-compose 以下部分内容来自ownCloud官方安装文档 首先,下载官方dock 2019-12-16 #docker #owncloud #nginx