K8s Kubelet 垃圾回收机制 Kubelet 垃圾回收(Garbage Collection)是一个非常有用的功能,它负责自动清理节点上的无用镜像和容器。Kubelet 每隔 1 分钟进行一次容器清理,每隔 5 分钟进行一次镜像清理(截止到 v1.15 版本,垃圾回收间隔时间还都是在源码中固化的,不可自定义配置)。如果节点上已经运行了 Kubelet,不建议再额外运行其它的垃圾回收工具,因为这些工具可能错误地清理掉 Kubelet 认为本应保留的镜像或容器,从而可能造成不可预知的问题...
Redis Zset跳表 在前面说Redis的文章里,提到了Redis的有序集合zset底层是依赖跳表实现的,当时没有展开讨论,内心认为还是需要一个专门的篇幅来介绍它。 先想一想为什么有序集合需要用跳表实现?回忆一下有序集合的几个关键词: 是SortedSet和HashMap的结合;value具有唯一性;多了一个score;支持范围查询,结构如下: 下面我决定针对zset的功能分析对应的造就这种功能所需的底层结构。 功能一:zset支持快速插入和...
CAP定理 关于 CAP 定理,分为以下三点:● 一致性(Consistency):分布式数据库的数据保持一致。● 可用性(Availability):任何一个节点宕机,其他节点可以继续对外提供服务。● 分区容错性(网络分区)Partition Tolerance:一个数据库所在的机器坏了,如硬盘坏了,数据丢失了,可以添加一台机器,然后从其他正常的机器把备份 的数据同步过来。根据定理,分布式系统只能满足三项中的两项而不可能满足全部三项。理解 CAP 定理的最简单方式是想象两个节点分处分区两侧。允许至少一个节点更
Golang: 什么时候nil != nil 最近在做Go语言开发工作中遇到不少坑,今天来理一理在哪些情况下我们使用 == 操作符号对比时候 nil != nil,以及我们如何避免在代码中遇到这些问题。我们先定义两个不同类型的变量,每个变量都赋值为nil。var a *int = nilvar b interface{} = nil想象一下下面的代码会输出什么结果:fmt.Println("a == nil", a == nil)fmt.Pr...
基于Docker镜像部署go项目 依赖知识Go交叉编译基础Docker基础Dockerfile自定义镜像基础docker-compose编排文件编写基础当然,一点也不会也可以按照这个步骤部署完成,不过可能中间如果出点小问题,会不知道怎么解决,当然你也可以留言。我是在mac环境上开发测试的,如果你是在windows上可能有一点出入,但应该不会有啥大问题。一、依赖环境Docker二、编写一个GoLang we...
go defer (延迟函数) Go语言的defer算是一个语言的新特性,至少对比当今主流编程语言如此。根据GO LANGUAGE SPEC的说法:A "defer" statement invokes a function whose execution is deferred to the moment the surrounding function returns, either because the surrou...
搞懂Go垃圾回收 垃圾回收(Garbage Collection,简称GC)是编程语言中提供的内存管理功能。在传统的系统级编程语言(主要指C/C++)中,程序员定义了一个变量,就是在内存中开辟了一段相应的空间来存值。由于内存是有限的,所以当程序不再需要使用某个变量的时候,就需要销毁该对象并释放其所占用的内存资源,好重新利用这段空间。在C/C++中,释放无用变量内存空间的事情需要由程序员自己来处理。就是说当程序员认...
Mac下使用Charles进行Android的https抓包 一、在Mac中,下载并安装Charles二、打开Charles软件,找到Proxy菜单后打开Proxy Settings配置项,勾选图示中的相关选项三、找到Help菜单栏中的SSL Proxying,选择Install Charles Root Certificate,按照提示完成证书的安装工作四、刚安装之后的证书,是不被系统信任的,将其改成系统信任方式:右键选中Charles证书文件...
Charles + iphone手机 抓取https包 1.下载 charles2.安装 charles3.mac配置charles3.1>点击菜单 Help–>SSL Proxying–>Install Charles Root CertifiCate3.2>在打开的对话框左边种类框种选择证书,右边右键点击charles的证书,在菜单中选择"显示简介"3.3>在打开的框框中进行证书信任操作,如下图3.4&g...
获取带参数的小程序二维码 微信小程序二维码官方文档地址:https://developers.weixin.qq.com/miniprogram/dev/api/qrcode.htmlphp具体实现代码:/* * 生成带参数的小程序二维码 **/public function getQRCode($auth){ // 获取access_token $access_token = json_dec...
docker学习---Dockfile详解 1.基本说明 Dockfile是一个用于编写docker镜像生成过程的文件,其有特定的语法。在一个文件夹中,如果有一个名字为Dockfile的文件,其内容满足语法要求,在这个文件夹路径下执行命令:docker build --tag name:tag .,就可以按照描述构建一个镜像了。name是镜像的名称,tag是镜像的版本或者是标签号,不写就是lastest。注意后面有一个空格和点。2.D...
阿里云消息服务(MNS)简单介绍 产品概述阿里云消息服务(Message Service)是一种高效、可靠、安全、便捷、可弹性扩展的分布式消息服务。MNS能够帮助应用开发者在他们应用的分布式组件上自由的传递数据、通知消息,构建松耦合系统。消息服务同时支持各种类型消息推送,其中和短信前后端的无缝整合更高效的为用户提供了大批量短信发送能力。消息服务提供了两种模型:队列模型主题模型两种功能模型的区别:队列模型支持一对一发送和接收消息...
Markdown基本语法 Markdown基本语法 Markdown是一种纯文本格式的标记语言。通过简单的标记语法,它可以使普通文本内容具有一定的格式。相比WYSIWYG编辑器优点:1、因为是纯文本,所以只要支持Markdown的地方都能获得一样的编辑效果,可以让作者摆脱排版的困扰,专心写作。2、操作简单。比如:WY...
批量删除mysql数据表 获取删除语句SELECT CONCAT( 'drop table ', table_name, ';' ) FROM information_schema.tables WHERE table_schema='数据库名' AND table_name LIKE '模糊表名%';示例:SELECT CONCAT( 'drop table ', table_name, ';' ) ...
Mysql 使用存储过程创建100张表 今天在做分表时候,遇到需要创建100张表的情景,手动创建太麻烦,使用存储过程实现了,记录下。创建存储过程函数:DELIMITER $$CREATE PROCEDURE `createRecordTables`()begin declare i int; set i=1; while i<100 do IF i<10 THEN ...
Linux命令(24):nl 命令 nl命令在linux系统中用来计算文件中行号。nl 可以将输出的文件内容自动的加上行号!其默认的结果与 cat -n 有点不太一样, nl 可以将行号做比较多的显示设计,包括位数与是否自动补齐 0 等等的功能。 1.命令格式:nl [选项]... [文件]...2.命令参数:-...