摘要: nacos-sdk-python A Python implementation of Nacos OpenAPI. see: https://nacos.io/zh-cn/docs/open-API.html Supported Python version: Python 2.7 Python 阅读全文
posted @ 2021-02-04 09:33 MrSatan 阅读(3703) 评论(0) 推荐(0) 编辑
摘要: Redis分布式锁实现 我们通常使用的synchronized或者Lock都是线程锁,对同一个JVM进程内的多个线程有效。因为锁的本质 是内存中存放一个标记,记录获取锁的线程是谁,这个标记对每个线程都可见。然而我们启动的多个订单服务,就是多个JVM,内存中的锁显然是不共享的,每个JVM进程都有自己的 阅读全文
posted @ 2021-01-16 18:44 MrSatan 阅读(330) 评论(0) 推荐(0) 编辑
摘要: 缓存有效期和淘汰策略 Redis的数据已经设置了TTL,不是过期就已经删除了吗?为什么还存在所谓的淘汰策略呢?这个原因我们需要从redis的过期策略聊起。 1.redis缓存过期策略 1.1 过期策略 定时过期 会一直循环去检查redis里哪个键过期,会占用大量cpu资源(不推荐)。 惰性过期 所谓 阅读全文
posted @ 2021-01-16 17:14 MrSatan 阅读(114) 评论(0) 推荐(0) 编辑
摘要: python垃圾回收 引用自:Alex老师python垃圾回收讲解 基于C语言源码底层,让你真正了解垃圾回收机制的实现。 引用计数器 标记清除 分代回收 缓存机制 python的C源码(3.8.2版本) 1 引用计数器 1.1 环状双向链表 refchain 在python程序中创建的任何对象都会放 阅读全文
posted @ 2021-01-13 13:59 MrSatan 阅读(163) 评论(0) 推荐(0) 编辑
摘要: bigkey 1、bigkey带来的问题 如果是集群模式下,无法做到负载均衡,导致请求倾斜到某个实例上,而这个实例的QPS会比较大,内存占用也较多;对于Redis单线程模型又容易出现CPU瓶颈,当内存出现瓶颈时,只能进行纵向库容,使用更牛逼的服务器。 涉及到大key的操作,尤其是使用hgetall、 阅读全文
posted @ 2021-01-13 11:26 MrSatan 阅读(6711) 评论(0) 推荐(0) 编辑
摘要: from collections import deque from dataStructures.tree.biTree.bst import BiTreeNode, BST class AVLNode(BiTreeNode): def __init__(self, data): BiTreeNo 阅读全文
posted @ 2020-11-14 16:06 MrSatan 阅读(118) 评论(0) 推荐(0) 编辑
摘要: ''' 一、红黑树性质 结点必须是红色或者黑色。 根节点必须是黑色。 叶节点(NIL)必须是黑色(NIL节点无数据,是空节点)。 红色结点不能连续。 从任一节点出发到其每个叶子节点的路径,黑色节点的数量必须相等。 ''' from dataStructures.tree.biTree.bst imp 阅读全文
posted @ 2020-11-14 15:59 MrSatan 阅读(181) 评论(0) 推荐(0) 编辑