08 2022 档案
摘要:简述 实现了类在当前进程中只有一个实例,比如python-GC 重写__new__实现单例 class A: def __new__(cls, *args, **kwargs): if not hasattr(cls, '_instance'): cls._instance = super().__
阅读全文
摘要:定义: 不改变原函数的代码增添新功能 闭包实现装饰器 def log_time(func): def inner(*args, **kwargs): beg = time.time() ret = func(*args, **kwargs) end = time.time() print("总耗时:
阅读全文
摘要:适用 有序数组 思想 定义起点下标beg,和终点下标end,每次对比中间值(beg+end)/2的大小,目标<中间值调整end,目标值>中间值调整beg,直到beg>end或目标值与中间值相等返回 代码实现 def binary_find(val, arr): if not arr: return
阅读全文
摘要:常见排序算法一览表 快速排序 原理 数组中随机选一个基准元素,采用分治思想,筛选出小于基准值的的元素组成数组A和大于基准值的元素组成数组B,再将A,B分别进行选基准比较分出小于基准的数组C和大于基准的数组D,这算两个轮回,进行多轮操作直到新数组元素个数小于2。 代码 def quickSort(ar
阅读全文
摘要:1. (主)引用计数(reference counting) 引用计数为0时,该对象生命就结束了。维护引用计数消耗资源,循环引用L.append(L) L一直不回收 2.(辅)标记清除机制(mark and sweep) 2.1 目的: 解决容器对象的循环引用 ###2.2标记清除原理: 对象之间会
阅读全文
摘要:python速度慢的原因 动态类型语言,边解释边执行 GIL,无法利用多核CPU并发执行 GIL 同步线程的一种机制,使得任何时刻仅有一个线程在执行。在多核心处理器上,使用 GIL 的解释器也只允许同一时间执行一个线程 为什么有GIL这个东西? 简而言之:python设计初期,为了规避并发问题引入了
阅读全文
摘要:字符串常用函数 | len(str) | 求长度 | | | | | +或fmt.Sprintf | 拼接字符串 | | strings.Split | 分割 | | strings.contains | 判断是否包含 | | strings.HasPrefix,strings.HasSuffix
阅读全文
摘要:OSI7层模型 物理层 电脑链接起来的一种手段(光纤,无线电波),规定了网络的一些电气特性,作用是负责传送0和1的电信号 数据链路层 规定解读电信号的方式,统一电信号分组方式:以太网协议Ethernet ARP协议来获取接受方的MAC地址,以太网采用原始方式:广播向同一子网络的计算机发送数据,每台电
阅读全文
摘要:常见缓存数据库 缓解关系型数据库的并发访问的压力:热点数据 减少响应时间 提升吞吐量:单机内存数据库支持很大并发量 Redis命令集参考 https://www.cnblogs.com/xkqwy/p/16353029.html#1saddsmembersscardsismember Redis数据
阅读全文
摘要:为什么需要索引? 定义:索引是一个列或多个列进行排序的数据结构 作用:索引能大幅提高查找效率 缺点:创建和更新索引会耗费 空间和时间 查找结构进化 一个个找:实现简单:太慢 二分查找:有序:简单:要求是有序的,插入特别慢 HASH:查询快 ;占用空间;不太适合存储大规模数据 二叉查找树bst :插入
阅读全文
摘要:事务Transaction 并发控制的基本操作 可以看成一系列的SQL语句 要么成功,要么失败,失败回滚 事务特性ACID 原子性Atomicity:事务内的操作要么全部成功,要么全部失败 一致性Consistency:事务开始和结束后,数据完整性没有被破坏 隔离性Isolation:多个事务同时对
阅读全文
摘要:1 介绍 RocketMQ作为一款纯java、分布式、队列模型的开源消息中间件,支持事务消息、顺序消息、批量消息、定时消息、消息回溯等。 1.1 RocketMQ 特点 支持发布/订阅(Pub/Sub)和点对点(P2P)消息模型 在一个队列中可靠的先进先出(FIFO)和严格的顺序传递 (Rocket
阅读全文
摘要:本片随笔仅记录自己目前对DDD的理解与实践,后续会持续关注DDD,持续更新 1. DDD是什么 DDD是领域驱动设计的简称,那什么是领域呢,领域就是业务,比如,制药领域,金融领域,电商领域等等,各个领域有各个规则,复杂的规则如何应对呢,想到一个关键字那就是分治思想。领域再大都可以拆分成小子域,如同递
阅读全文
摘要:概念: 电脑运算视作数学上的函数计算 高阶函数:map,reduce,filter 无副作用,相同的参数调用时钟产生同样的结果 闭包Closure 为什么为出现闭包? 我们想要在函数外部获取函数内部的局部变量,但是python由是 自下而上的链式作用域,所以不行,那么用相反的思想,f1函数内部再创建
阅读全文
摘要:回顾redis分布式锁 获取锁成功后为了防止客户端进程失败无法正常释放锁进而导致其他的客户端再也获得不到锁,在使用SETNX的时候我们还需要为每个锁加一个过期时间Expire Time, 这样即使在客户端不能正常释放锁的情况下,过期时间到了之后,Redis会自动释放掉锁来让别的客户端能够继续申请锁。
阅读全文
摘要:分布式锁三种实现方式 基于数据库实现分布式锁; 基于缓存(Redis等)实现分布式锁; 基于Zookeeper实现分布式锁; 一、基于数据库实现分布式锁 1. 悲观锁 利用select … where … for update 排他锁 注意: 其他附加功能与实现一基本一致,这里需要注意的是“wher
阅读全文