- 博客(21)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 minikube 安装
安装minikube curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 sudo install minikube-linux-amd64 /usr/local/bin/minikube 安装 kubectl sudo snap install kubectl --classic 启动 minikube start --driver=docker 出现各种错误 X .
2021-12-21 16:28:56
391
原创 redis-主从+哨兵
主从 一主二从 # redis-master.conf port 6380 requirepass 123456789 # redis-slave1.conf redis-slave2.conf port 6381 requirepass 123456789 # slaveof <masterip> <masterport> 配置master节点信息 slaveof xxx.xxx.xxx.xxx 6380 # 只读 slave-read-only yes # master使
2021-12-06 16:03:59
1201
原创 mysql 主从
基础: 2台服务器,代号分别为60, 59,使用docker部署mysql。 具体步骤: 1. 进行授权远程连接授权 进入master (60) 的docker, 进行授权远程连接授权 GRANT ALL ON *.* TO 'root'@'%'; flush privileges; 同样,给slaver(59)授权: grant all on *.* To 'root'@'%'; flush privileges; 接下来创建数据同步用户: CREATE USER 'slave'@'%' IDENTI
2021-12-03 17:18:45
443
原创 sanic中 同步变异步
# -*- coding:utf-8 -*- import asyncio from sanic import Sanic from sanic.response import text, json import time from concurrent.futures import ThreadPoolExecutor app = Sanic("MyHelloWorldApp") def func1(): time.sleep(1) # print('func1') ret
2021-11-30 10:34:56
601
1
原创 试着说说 分治法
分治法基本步骤场景 基本步骤 将原问题分解成若干个规模较小的,相互独立,与原问题形式相同的子问题; 若子问题规模较小而用意被解决则直接解,否则,递归地解各个子问题 将各个子问题的解合并为原问题的解; 场景 二分搜索 大整数相乘 归并排序 快速排序 棋盘覆盖 循环赛日程表 汉诺塔 ...
2021-11-19 14:05:29
1252
原创 几种交换机
默认交换机: 直连交换机: 直连交换机(direct exchange)是根据消息携带的路由键(routing key)将消息投递给对应队列的。直连交换机用来处理消息的单播路由(unicast routing)。 当一个队列绑定到某个交换机上,同时赋予该绑定一个路由键(routing key); 当一个携带着路由键为R的消息被发送给直连交换机,交换机会把他路由给绑定值同样为R的队列; 直连交换机经常用来循环分发任务给多个woker,消息的负载均衡是发生在消费者(customer)之间,而不是队列之间;
2021-10-25 14:40:51
202
原创 三色标记法
首先需要搞清楚什么是RootSet; 所有对象全部是白色 RootSet直接关联的放入灰色标记表; 灰色标记表(如[a, b])中的对象直接管理的白色标记表中的对象也放入灰色标记表,同时原灰色标记表中的([a,b])放入黑色标记表; 重复步骤3,直至灰色标记表中没有任何对象; 释放白色标记表中的对象;(此时,存在在白色标记表中的对象可以认定没有任何可用对象对其引用) 强三色不变式/弱三色不变式? 强三色不变式: 禁止黑色对象引用白色对象 弱三色不变式:允许黑色对象引用白色对象但是有条件,该条件为:
2021-06-30 10:14:39
271
原创 标记清除法
标记清除法 大概步骤: 1.STW开始 2.标记可达对象 3.清除不可达对象 4.退出STW 产生的问题: STW开始到结束,线程不可用(a) 标记可达对象需要扫描全部的堆 清除不可达对象之后可能会导致堆中的碎片化 可进行的优化: 1.STW开始 2.标记可达对象 3.退出STW 4.清除不可达对象 针对的是(a) ...
2021-06-29 16:33:32
269
原创 sync中并发工具类
sync.Mutex package main import ( "fmt" "sync" "time" ) func doSomeThingWithLock(lock *sync.Mutex, name string) { lock.Lock() defer lock.Unlock() fmt.Println("doSomethingWithLock", name) time.Sleep(time.Second * 2) fmt.Println(name, "leave") } fu
2021-06-22 10:48:21
265
原创 锁的解释(一)
更新数据的时候必然加独占锁,独占锁和独占锁是互斥的,此时别人不能更新;但此时你要查询,默认是不加锁的,(但有mvcc保证),但是查询可以手动加共享锁(select * from table_name lock in share mode),共享锁和独占锁(select * from table_name for update)是互斥的,但共享锁和共享锁不互斥。 表锁 1. 表锁 lock tables xxx Read: 表级共享锁 lock tables xxx WRITE: 表级独占锁 # 这在业务.
2021-06-17 13:07:10
137
原创 4个隔离级别
read uncommitted 读未提交 不允许脏写; 什么是脏写? 某一行数据为a 两个事务A,B,A更新a->A, 但并未提交,同时B更改A->B,提交B,但A未提交需要回滚B->a 不可能两个事务在没有提交的情况下去更新同一行数据; read committed 读已提交 不会发生脏读,脏写; A,B两个事务,A更改数据未提交时,不许B读取数据 repeatable read (默认级别) 不会发生脏读,脏写,不可重复读 一个A事务多次查询一个数据的值,哪怕别的事务(B)
2021-06-16 15:41:57
124
原创 innodb 索引合并
为什么会有索引合并? 在一个查询中使用到了多个二级索引 Intersection合并(交集) 将从多个二级索引中查询到的结果取交集; select * from table where key1 = 'a' and key3 = 'b'; 过程: 从idx_key1二级索引对应的B+树中取出key1='a’的相关记录; 从idx_key3二级索引对应的B+树中取出key3=‘b’的相关记录; 二级索引的记录都是由索引列+主键构成的,所以我们计算出这两个结果集中id值的交集; 按照上一步生成的id值列表进
2021-06-09 16:04:44
160
原创 InnoDB 表空间
页面组成 名称 大小 描述 作用 FileHeader 38B 页的通用信息 Page Header 56B 数据页专有的一些信息 Infimum + Supermum 26B 两个虚拟的行记录 分别表示页中的最小和最大记录 User Records 不确定 实际存储的行记录内容 Free Space 不确定 页中尚未使用的空间 Page Directory 不确定 页中的某些记录相对位置 File Trailer 8B 校验页是否完整 页面类型 In
2021-06-08 16:21:26
142
原创 mysql-系统数据库简介
mysql 这个数据库是核心,它存储了MySQL的用户账号和权限信息,一些存储过程、事件的定义信息,一些运行过程中产生的日志信息,一些帮助信息以及时区信息等。 information_schema 这个数据库保存着mysql服务器维护的所有其他数据库的信息,比如有哪些表,哪些视图,哪些触发器,哪些列,哪些索引等。这些信息并不是真实的用户数据,而是一些描述性信息,有时候也称为值元数据。 performance_schema 这个数据库里主要保持mysql服务器运行过程中的一些状态信息,算是对mysql服务器的
2021-06-08 14:38:23
247
原创 单链表-相邻节点交还
题目: 把链表相邻元素翻转,例如给定链表为卜>2一>3一对一>5->6一>7,则翻转后的链表变为 2一> 1一>4一>3一>6一>5一>7 。 class LNode: def __init__(self, data): self.data = data self.next = None head = LNode(None) l1 = LNode(1) l2 = LNode(2) l3 = L
2020-12-11 17:49:21
179
原创 Inventory 我的使用(一)
# /etc/ansible/hosts [local] # 组名 # 主机 # localhost ansible_connection=local ansible_connection: 什么时候用local? 我是用在local中,未探及原因,之所以用local是因为测试本地时 ansible test -m ping localhost | UNREACHABLE! => { "changed": false, "msg": "Failed to
2020-12-10 15:28:03
821
原创 单链表-取倒数第几个节点的值
class LNode: def __init__(self, x): self.data = x self.next = None def __repr__(self): return self.data def __str__(self): return str(self.data) def read(l, count=0): a = l b = l # 第一次的错在在于count+.
2020-12-04 13:36:21
213
原创 单链表-相加
class LNode: def __init__(self, x): self.data = x self.next = None def __repr__(self): return self.data def __str__(self): return str(self.data) def add(a, b): a = a.next b = b.next r = LNode(Non.
2020-12-04 11:07:55
169
原创 单链表-删除data重复的节点
class LNode: def __init__(self, x): self.data = x self.next = None def __repr__(self): return self.data def __str__(self): return str(self.data) def remove(head): if head == None or head.next == None: .
2020-12-04 10:10:58
156
原创 单链表之反转(二)
class LNode: def __init__(self, x): self.data = x self.next = None def __repr__(self): return self.data def __str__(self): return str(self.data) def Reverse(head): if head is None or head.next is None: .
2020-12-03 17:36:58
140
原创 单链表之反转
class LNode: def __init__(self, x): self.data = x self.next = None def __repr__(self): return self.data def __str__(self): return str(self.data) def Reverse(head): if head is None or head.next is None: .
2020-12-03 15:07:24
112
robot framework Httplibrary
2015-07-21
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅