python-redis-distributed-lock

Python 实现 Redis 分布式锁

在分布式系统中,确保跨多个节点的数据一致性和操作的原子性是一项挑战,分布式锁是解决这一问题的有效工具。本文将探讨在 Python 中如何利用 Redis 来实现分布式锁,包括分布式锁的基本概念、Redis 分布式锁的实现方法以及相关的实践示例。 ...

November 13, 2023 · 1 min · K8sCat

M1 Mac 上安装 python mysqlclient

下面记录了在 M1 Mac 上如何解决安装 python mysqlclient 失败的问题。 ...

July 11, 2021 · 1 min · K8sCat
Email forwarding

ForMaiR - 自定义规则的邮件自动转发工具

由于邮箱自带的转发功能只能转发到指定的邮箱,并不能对邮件内容进行过滤,所以就趁着 leader 过年肥家不在写了这个邮件自动转发工具 ForMaiR。 ...

February 7, 2021 · 1 min · K8sCat

pip 配置源

pip 可以通过配置国内源加快安装依赖的速度, 可以直接舔加 -i 参数, 但是每次安装依赖都要添加很麻烦, 所以可以通过修改配置文件, 这样以后安装依赖就不需要添加了,但不同的系统的配置文件所在的位置不同(Mac: ~/.config/pip/pip.conf, Windows: ~/AppData/Roaming/pip/pip.ini), 可以通过 pip config 达到不同系统下修改配置的目的. pip 国内的一些镜像 阿里云 https://mirrors.aliyun.com/pypi/simple/ 中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/ 豆瓣(douban) http://pypi.douban.com/simple/ 清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/ 中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/ 修改源方法: 临时使用: 可以在使用pip的时候在后面加上-i参数,指定pip源 eg: pip install scrapy -i https://pypi.tuna.tsinghua.edu.cn/simple 配置文件 Linux 修改 ~/.pip/pip.conf (没有就创建一个), 内容如下: [global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple [install] trusted-host=pypi.tuna.tsinghua.edu.cn Windows: 直接在user目录中创建一个pip目录,如:C:\Users\xx\pip,新建文件pip.ini,内容如下 [global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple [install] trusted-host=pypi.tuna.tsinghua.edu.cn 命令行方式 pip config set global.index-url https://pypi.mirrors.ustc.edu.cn/simple/

October 20, 2019 · 1 min · K8sCat

今天又被字符编码虐了, 我太难了

'\\u4eca\\u5929\\u53c8\\u88ab\\u5b57' \ '\\u7b26\\u7f16\\u7801\\u8650\\u4e86' \ '\\u002c\\u0020\\u6211\\u592a\\u96be\\u4e86'\ .encode('utf-8').decode('unicode_escape') Talk is cheap, show you the code. print(response.body) > b'{"11665732":{"id":"11665732","title":"\\u524d\\u7aef\\u9879\\u76ee-snabbdom.zip","tag":"\\u524d\\u7aef\\u9879\\u76ee","categoryid":"16014","sourcescore":"5","username":"weixin_38743737","sourcesize":"303757","pubdate":"2019-09-04","description":"\\u524d\\u7aef\\u9879\\u76ee-snabbdom,\\u4e00\\u4e2a\\u6ce8\\u91cd\\u7b80\\u5355\\u6027\\u3001\\u6a21\\u5757\\u5316\\u3001\\u5f3a\\u5927\\u529f\\u80fd\\u548c\\u6027\\u80fd\\u7684\\u865a\\u62dfDOM\\u5e93\\u3002","filetype":".zip","fileaddr":"\\/20190904\\/34470584265A4CF68BC092C8437FD084-\\u524d\\u7aef\\u9879\\u76ee-snabbdom.zip","download_num":null,"sourcetype":"2","operator":"zzsj666","pubdate_int":"1567588978","is_hot":false,"image":"\\/\\/csdnimg.cn\\/release\\/download\\/old_static\\/images\\/minetype\\/unkonw.svg","nickname":"weixin_38743737"}}' print(response.encoding) > utf-8 print(chardet.detect(response.body)) > {'encoding': 'ascii', 'confidence': 1.0, 'language': ''} print(response.body.decode('unicode_escape')) > {"11665732":{"id":"11665732","title":"前端项目-snabbdom.zip","tag":"前端项目","categoryid":"16014","sourcescore":"5","username":"weixin_38743737","sourcesize":"303757","pubdate":"2019-09-04","descr"前端项目-snabbdom,一个注重简单性、模块化、强大功能和性能的虚拟DOM库。","filetype":".zip","fileaddr":"\/20190904\/34470584265A4CF68BC092C8437FD084-前端项目-snabbdom.zip","download_num":null,"sourcepubdate_int":"1567588978","is_hot":false,"image":"\/\/csdnimg.cn\/release\/download\/old_static\/images\/minetype\/unkonw.svg","nickname":"weixin_38743737"}} # 上述解决方案存在问题, json.loads时会出现错误 # 最终解决方案 json.loads(response.body.decode('utf-8')) 参考项目: CSDNHub

September 4, 2019 · 1 min · K8sCat

生成及使用 requirements.txt

平时使用的是 pipenv, 但是在 docker 构建镜像时, 其本身就是一个隔离的环境, 就没必要再去安装 pipenv, 这时如何安装需要的依赖呢? # 生成 requirements.txt pip freeze > requirements.txt # 使用 requirements.txt 安装所需的依赖 pip install -r requirements.txt CSDNBot web版的 Dockerfile: FROM python:3.7 LABEL maintainer="hsowan<hsowan.me@gmail.com>" WORKDIR /CSDNBot COPY . . RUN pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ -r requirements.txt && \ # 更新apt源 wget -O /etc/apt/sources.list https://gitee.com/hsowan/linux-run/raw/master/debian/buster/tsinghua/sources.list && \ apt update && \ apt install -y cron EXPOSE 8000

August 21, 2019 · 1 min · K8sCat