04 2022 档案

摘要:之前咱们学习过原生的Go连接MYSQL的方法,使用Go自带的"database/sql"数据库连接api,"github.com/go-sql-driver/mysql"MYSQL驱动,通过比较原生的写法去写sql和处理事务。目前开源界也有很多封装好的orm操作框架,帮我们简省一些重复的操作,提高代 阅读全文
posted @ 2022-04-30 19:49 李若盛开 阅读(1405) 评论(0) 推荐(0) 编辑
摘要:缓存击穿 缓存击穿是指单个热点数据失效时,针对这个数据的大量请求会穿透到持久层,并发量高了之后,数据库宕机。【定点打击】 解决方案: 1、若缓存数据基本不会发生更新,则可尝试将热点数据设置为永不过期。2、若缓存的数据更新不频繁,且缓存刷新的整个流程耗时较少的情况下,则可以采用基于 Redis、zoo 阅读全文
posted @ 2022-04-29 14:38 李若盛开 阅读(144) 评论(0) 推荐(0) 编辑
摘要:背景 我们在业务场景中经常会碰到通过某个字符串查询对应记录的情况。比如常见的邮箱登录、手机号登录。如果不给它创建索引,则MySQL就会进行全局扫描,非常耗时。 那类似邮箱地址这样的字符串,我们应该如何给它创建索引呢? 这里简单介绍几种方法。 几种方法 比如我们有一张表user_info用于存储用户登 阅读全文
posted @ 2022-04-29 11:48 李若盛开 阅读(459) 评论(0) 推荐(0) 编辑
摘要:分布式锁,是一种跨进程的跨机器节点的互斥锁,它可以用来保证多机器节点对于共享资源访问的排他性。 分布式锁和线程锁本质上是一样的,线程锁的生命周期是单进程多线程,分布式锁的声明周期是多进程多机器节点。 在本质上,他们都需要满足锁的几个重要特性: 排他性,也就是说,同一时刻只能有一个节点去访问共享资源。 阅读全文
posted @ 2022-04-29 10:16 李若盛开 阅读(566) 评论(0) 推荐(0) 编辑
摘要:前言:本文主要介绍git的原理、使用和一些技巧,目的在于使读者对git的了解不仅仅局限于简单的使用push、pull命令,而要做到知其然且知其所以然。 Git起源 git是由Linux的作者Linus花两周时间写出的分布式版本控制软件。在这之前,Linux社区使用BitKeeper作为版本控制系统, 阅读全文
posted @ 2022-04-27 15:41 李若盛开 阅读(148) 评论(0) 推荐(0) 编辑
摘要:帧同步:战斗核心逻辑写在客户端状态同步:战斗核心逻辑写在服务器端 一、同步 所谓同步,就是要多个客户端表现效果是一致的,例如我们玩王者荣耀的时候,需要十个玩家的屏幕显示的英雄位置完全相同、技能释放角度、释放时间完全相同,这个就是同步。就好像很多个人一起跳街舞齐舞,每个人的动作都要保持一致。而对于大多 阅读全文
posted @ 2022-04-27 14:24 李若盛开 阅读(453) 评论(0) 推荐(0) 编辑
摘要:实际项目中,读取相关的系统配置文件是很常见的事情。 1. json使用 JSON 应该比较熟悉,它是一种轻量级的数据交换格式。层次结构简洁清晰 ,易于阅读和编写,同时也易于机器解析和生成。 1)创建 conf.json { "enabled": true, "path": "/usr/local" 阅读全文
posted @ 2022-04-27 13:19 李若盛开 阅读(311) 评论(0) 推荐(1) 编辑
摘要:周末花时间看了一些比特币原理相关的资料,虽然不敢说把每个细节都完全搞懂了,不过整体思路和关键部分的主要原理还是比较明白。写一篇文章分享给大家。这篇文章的定位会比较科普,尽量用类比的方法将比特币的基本原理讲出来。这篇文章不会涉及算法和协议中比较细节的部分,打算后面会再写一篇程序员视角下的比特币原理,那 阅读全文
posted @ 2022-04-26 14:23 李若盛开 阅读(388) 评论(0) 推荐(0) 编辑
摘要:一、概念 ZooKeeper 是一个开放源码的分布式协调服务,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户。 Zookeeper 的 Java 客户端都有哪些? Zookeeper 自带的 zkclien 阅读全文
posted @ 2022-04-25 20:29 李若盛开 阅读(458) 评论(0) 推荐(0) 编辑
摘要:1、将一套系统拆分成不同子系统部署在不同服务器上(这叫分布式)。 2、部署多个相同的子系统在不同的服务器上(这叫集群),此时部署在不同服务器上的同一个子系统应做负载均衡。 3、集群和分布式都是由多个节点(多个服务器)组成,但是集群之间的通信协调基本不需要;而分布式各个节点的通信协调必不可少。 4、分 阅读全文
posted @ 2022-04-25 18:11 李若盛开 阅读(134) 评论(0) 推荐(0) 编辑
摘要:前言 一般习惯用Json、XML 数据存储格式,相信大多都没听过Protocol Buffer。Protocol Buffer 其实是Google出品的一种轻量 & 高效的结构化数据存储格式,性能比 Json、XML 强太多。 Protocol Buffer的性能好在哪里:a. 序列化速度 & 反序 阅读全文
posted @ 2022-04-25 12:55 李若盛开 阅读(149) 评论(0) 推荐(0) 编辑
摘要:什么是Dockerfile? Dockerfile是一个包含用于组合映像的命令的文本文档。可以使用在命令行中调用任何命令。 Docker通过读取Dockerfile中的指令自动生成映像。 docker build命令用于从Dockerfile构建映像。可以在docker build命令中使用-f标志 阅读全文
posted @ 2022-04-24 18:09 李若盛开 阅读(759) 评论(0) 推荐(0) 编辑
摘要:Channel 原理:当channel能存放的元素数量为0时表示为阻塞型channel。当管道无数据时,需要从管道取数据的协程会被阻塞,不会向下执行。所以可以通过多个协程应用同一个channel,从而实现协程间的同步。 使用场景: 1. 需要协程通信时 2. 需要管道传输数据时。 Mutex 原理: 阅读全文
posted @ 2022-04-24 10:32 李若盛开 阅读(523) 评论(0) 推荐(0) 编辑
摘要:golang 中的 sync 包实现了两种锁: Mutex:互斥锁 RWMutex:读写锁,RWMutex 基于 Mutex 实现 锁的概念 某个协程(线程)在访问某个资源时先锁住,防止其它协程的访问,等访问完毕解锁后其他协程再来加锁进行访问。 Mutex(互斥锁) Mutex 为互斥锁,Lock( 阅读全文
posted @ 2022-04-23 17:43 李若盛开 阅读(430) 评论(0) 推荐(1) 编辑
摘要:基于工具Navicat 一般项目中都会有测试数据库和生产数据库,测试数据库在平时开发过程中会经常变化,那么如何同步测试与生产数据库呢,可以利用Navicat的数据库结构同步功能: 阅读全文
posted @ 2022-04-23 14:24 李若盛开 阅读(202) 评论(0) 推荐(0) 编辑
摘要:索引方法:【按照实现的方式分类】一、B-Tree索引 B-Tree是最常见的索引类型,所有值(被索引的列)都是排过序的,每个叶节点到跟节点距离相等。所以B-Tree适合用来查找某一范围内的数据,而且可以直接支持数据排序(ORDER BY)B-Tree在MyISAM里的形式和Innodb稍有不同:My 阅读全文
posted @ 2022-04-22 17:29 李若盛开 阅读(97) 评论(0) 推荐(0) 编辑
摘要:前缀索引的优劣 很多情况下,我们需要根据一个长字符串类型的字段去查找记录,比如身份证、邮箱,为了避免全表扫描,就需要为字符串字段添加索引。由于Mysql支持前缀索引,所以我们可以选择将整个字段添加索引,或者只将前一部分的字符串加上索引: #整个字段alter table T add index in 阅读全文
posted @ 2022-04-22 17:04 李若盛开 阅读(520) 评论(0) 推荐(0) 编辑
摘要:在这篇文章开始之前,我们需要注意一下,并不是索引越多越好,索引是一种以空间换取时间的方式,所以建立索引是要消耗一定的空间,况且在索引的维护上也会消耗资源。 数据库建立索引的常用规则如下: 1.表的主键和外键建立索引【主键具有唯一性,索引值也是有唯一,查询时可以快速定位到数据行;外键一般关联的是另一个 阅读全文
posted @ 2022-04-22 14:52 李若盛开 阅读(3961) 评论(0) 推荐(1) 编辑
摘要:select与switch的区别: 1:每个switch后面必须跟随一个条件判断,而select后面没有 2:switch中的case语句为枚举值进行比较,select中的case必须是一个对channel的读或者写的操作 select与switch的相同点: 如果switch或select中的ca 阅读全文
posted @ 2022-04-22 09:36 李若盛开 阅读(446) 评论(0) 推荐(0) 编辑
摘要:Gin简介 1.Gin 是什么? Gin 是一个用 Go (Golang) 编写的 HTTP web 框架。 它是一个类似于 martini 但拥有更好性能的 API 框架, 由于 httprouter,速度提高了近 40 倍。如果你需要极好的性能,可以使用 Gin 。 2.Gin特点 轻量级、高性 阅读全文
posted @ 2022-04-21 18:01 李若盛开 阅读(515) 评论(0) 推荐(0) 编辑
摘要:导入dump好的sql脚本到本地出现“2006”的错误: MySQL 命令行客户端执行导入的时候报错: ERROR 2006 (HY000): MySQL server has gone away No connection. Trying to reconnect... Connection id 阅读全文
posted @ 2022-04-20 10:48 李若盛开 阅读(583) 评论(0) 推荐(0) 编辑
摘要:数据库查询流程 我们先来看下,一条查询语句下来,会经历哪些流程。 比如我们有一张数据库表 CREATE TABLE `user` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键', `name` varchar(100) NOT 阅读全文
posted @ 2022-04-20 10:23 李若盛开 阅读(272) 评论(0) 推荐(0) 编辑
摘要:1)、读已经关闭的 chan 能一直读到东西,但是读到的内容根据通道内关闭前是否有元素而不同。 c.closed != 0 && c.qcount == 0指通道已经关闭,且缓存为空的情况下(已经读完了之前写到通道里的值) 如果接收值的地址ep不为空 那接收值将获得是一个该类型的零值(即对应类型的默 阅读全文
posted @ 2022-04-20 10:02 李若盛开 阅读(508) 评论(0) 推荐(0) 编辑
摘要:写未初始化的chan package main // 写未初始化的chan func main() { var c chan int c <- 1 } 结果分析 读写未初始化的chan都会阻塞。原因: 未初始化的chan此时是等于 nil,当它不能阻塞的情况下,直接返回 false,表示写 (读)c 阅读全文
posted @ 2022-04-20 10:01 李若盛开 阅读(195) 评论(0) 推荐(0) 编辑
摘要:在日常工作中,经常有这样的情况,我们需要做hash散列分发数据到不同的区或节点。目标是结果要均匀散列,避免某个节点积累大量的数据,出现倾斜情况。 比如目前有N台机器,有数据key,需要做散列key%N分发到对应的节点上。如果节点太少时,容易因为节点分部不均匀而造成数据倾斜(被缓存的对象大部分集中缓存 阅读全文
posted @ 2022-04-19 11:02 李若盛开 阅读(572) 评论(0) 推荐(0) 编辑
摘要:list对象编码是 压缩列表(ziplist) 或者 双向链表。 1、压缩列表(主要是为了节约内存) 当创建新的列表键时,列表会优先考虑使用压缩列表,因为双向链表占用的内存比压缩列表要多,并且在有需要的时候,才从压缩列表实现转换到双向链表实现。 ziplist存储在一段连续的内存上,所以存储效率很高 阅读全文
posted @ 2022-04-18 16:09 李若盛开 阅读(245) 评论(0) 推荐(0) 编辑
摘要:分布式锁是控制分布式系统之间同步访问共享资源的一种方式。如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源时,需要通过一些互斥手段来防止彼此之间的干扰以保证一致性,在这种情况下,就需要使用分布式锁了。 在分析分布式锁的三种实现方式之前,先了解一下分布式锁应该具备哪些条件 阅读全文
posted @ 2022-04-15 14:27 李若盛开 阅读(508) 评论(0) 推荐(0) 编辑
摘要:我们在做go web开发的时候,应该都遇到生成二维码分享的应用场景。 生成普通二维码 package main import "github.com/skip2/go-qrcode" func main() { qrcode.WriteFile("https://www.cnblogs.com/be 阅读全文
posted @ 2022-04-15 11:01 李若盛开 阅读(699) 评论(0) 推荐(0) 编辑
摘要:1、数组的局限性 数组是内存上连续的数据结构,因此其各操作的时间复杂度为: 查找:O(1) 插入:O(n) 删除:O(n) 可以看到其插入和删除因为需要移动大量元素,导致了其线性的时间复杂度O(n)。 2、数组的改进 链表 为了降低对集合元素(数组)进行插入、删除操作时的时间复杂度,前人提出了链表的 阅读全文
posted @ 2022-04-14 17:07 李若盛开 阅读(249) 评论(0) 推荐(0) 编辑
摘要:跳表是什么 跳表是在双向链表(什么是链表)之上加多层索引构成的,相对于双向链表,支持快速查找,更新,删除,所以适用于需求灵活的场景。 查找某一个数据时,先在索引里面查找出一个大的范围,然后再下降到原始链表中精确查找。 因为加一层索引后,查找一个结点需要遍历的次数减少了,所以查找效率大大提升。【空间换 阅读全文
posted @ 2022-04-14 11:54 李若盛开 阅读(3446) 评论(0) 推荐(0) 编辑
摘要:ZSet对象编码是ziplist或者 skiplist。 在同时满足以下两个条件时使用ziplist: 1)有序集合保存的元素数量小于128个; 2)有序集合保存的所有元素的长度小于64字节; 不能满足上面任何一个条件时则使用 skiplist 编码。 注意:以上两个条件也可以通过Redis配置文件 阅读全文
posted @ 2022-04-13 18:13 李若盛开 阅读(829) 评论(0) 推荐(0) 编辑
摘要:Redis 使用键值对存储数据,其中的值(对象)包括 5 种类型,即字符串、列表、哈希、集合、有序集合,这是 Redis 对外提供的,实际上,在 Redis 内部每种类型可能有 2 种或更多的内部编码实现。 1、字符串(string) 用于一些常规计数:微博数,粉丝数等 其中:embstr和raw都 阅读全文
posted @ 2022-04-13 16:53 李若盛开 阅读(499) 评论(0) 推荐(0) 编辑
摘要:Set对象编码是 intset 或者 hashtable。 1、intset intset 编码的集合对象使用整数集合作为底层实现,集合对象包含的所有元素都被保存在整数集合里面。 举个例子,以下代码将创建一个intset 编码集合对象: 2、hashtable hashtable 编码的集合对象使用 阅读全文
posted @ 2022-04-13 15:42 李若盛开 阅读(1406) 评论(0) 推荐(1) 编辑
摘要:索引在计算机中的位置 一般来说,索引本身也很大,不可能全部存储在内存中,一般以文件形式存储在磁盘上,索引检索需要磁盘I/O操作。判断一种数据结构作为索引的优劣主要是看在查询过程中的磁盘IO渐进复杂度,一个好的索引应该是尽量减少磁盘IO操作次数。 为什么使用B+树 1、B树只适合随机检索,而B+树同时 阅读全文
posted @ 2022-04-12 18:39 李若盛开 阅读(1692) 评论(0) 推荐(0) 编辑
摘要:简介 AWK 是一种处理文本文件的语言,是一个强大的文本分析工具。之所以叫 AWK 是因为其取了三位创始人 Alfred Aho,Peter Weinberger和 Brian Kernighan 的Family Name 的首字符。主要用于数据扫描、过滤、统计汇总工作,数据可以来自标准输入、管道或 阅读全文
posted @ 2022-04-12 10:46 李若盛开 阅读(137) 评论(0) 推荐(0) 编辑
摘要:一、定义 存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象。 二、特点 1、能完成较复杂 阅读全文
posted @ 2022-04-11 16:54 李若盛开 阅读(41) 评论(0) 推荐(0) 编辑
摘要:深入解析扩容原理(查看这里) 内部结构 type slice struct { array unsafe.Pointer len int cap int } 扩容机制 规则1 当需要的容量大于原切片容量的两倍时,会使用需要的容量作为新容量; 当原切片长度小于1024时,新切片的容量会直接翻倍; 而当 阅读全文
posted @ 2022-04-11 10:51 李若盛开 阅读(459) 评论(0) 推荐(0) 编辑
摘要:优点: 1.极简单的部署方式 直接编译成机器码、不依赖其他库、直接运行即可部署; 2.静态类型语言 编译的时候检查出来隐藏的大多数问题; 3.语言层面的并发 天生的基因支持、充分利用多核; 4.强大的标准库 runtime系统调度机制、高效的GC垃圾回收、丰富的标准库; 5.简单易学 25个关键字、 阅读全文
posted @ 2022-04-11 00:33 李若盛开 阅读(1059) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2022-04-10 23:58 李若盛开 阅读(43) 评论(0) 推荐(0) 编辑
摘要:单线程的redis为什么这么快 1)绝大部分请求是纯粹的内存操作(非常快速); 2)采用单线程,避免了不必要频繁的上下文切换和竞争条件; 3)非阻塞I/O多路复用机制。 对于大量的请求怎么样处理 redis是一个单线程程序,也就是说同一时刻它只能处理一个客户端请求; redis是通过IO多路复用(s 阅读全文
posted @ 2022-04-10 23:45 李若盛开 阅读(1524) 评论(0) 推荐(0) 编辑
摘要:Mongodb 文档型的非关系型数据库,其最大优势在于查询功能比较强大,能存储海量数据,不支持事务,是一个介于关系数据库和非关系数据库之间的产品,在非关系数据库中功能最丰富,支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。支持丰富的数据表达,索引,最类似关系型数 阅读全文
posted @ 2022-04-10 20:08 李若盛开 阅读(37) 评论(0) 推荐(0) 编辑
摘要:Channel的理解 Channel是Go中的一个核心类型,可以把它看成一个管道,通过它并发核心单元就可以发送或者接收数据进行通讯(communication),Channel也可以理解是一个先进先出的队列,通过管道进行通信。 Golang的Channel,发送一个数据到Channel和从Chann 阅读全文
posted @ 2022-04-09 23:59 李若盛开 阅读(916) 评论(0) 推荐(0) 编辑
摘要:存储引擎简介 存储引擎是对于数据库文件的一种存取机制(存取方式),如何实现存储数据,如何为存储的数据建立索引以及如何更新,查询数据等技术实现的方法。 查看Mysql有哪些存储引擎: show engines; Engine:存储引擎的名称Support:MySql是否支持,YES代表支持,NO代表不 阅读全文
posted @ 2022-04-08 20:47 李若盛开 阅读(264) 评论(0) 推荐(0) 编辑
摘要:MySQL中的索引类型有以下几种: 普通索引:仅加速查询 唯一索引:加速查询 + 列值唯一(可以有null)+ 表中可以多个唯一索引 主键索引:加速查询 + 列值唯一(不允许有null)+ 表中只有一个主键(特殊的唯一索引) 组合索引:多列值组成一个索引,专门用于组合搜索,其效率大于索引合并 全文索 阅读全文
posted @ 2022-04-08 15:41 李若盛开 阅读(256) 评论(0) 推荐(0) 编辑
摘要:1)数据库本身 (1)查看数据库状态 (2)查找日志文件中是否有sql相关打印 (3)查看当前连接数 执行 show processlist 查看mysql正在运行的sql线程 (4)查看mysql慢查询日志(默认情况下,mysql不开启慢查询日志) 可通过命令:show variables lik 阅读全文
posted @ 2022-04-08 14:54 李若盛开 阅读(2260) 评论(0) 推荐(0) 编辑
摘要:面试必问: 1、什么是内存逃逸 2、内存逃逸的场景有哪些 3、分析内存逃逸的意义 4、怎么避免内存逃逸 1、什么是内存逃逸 在了解什么是内存逃逸之前,我们先来简单地熟悉一下两个概念。栈内存和堆内存。 Golang的GC主要是针对堆的,不是栈。 值类型的全局变量分配在栈上,引用类型的全局变量分配在堆上 阅读全文
posted @ 2022-04-08 11:33 李若盛开 阅读(494) 评论(0) 推荐(0) 编辑
摘要:1)、like查询以“%”开头(非要写在最左边,就使用覆盖索引;如果开头、结果都有“%”,也不会使用索引,走的是全表扫描); 2)、or语句前后没有同时使用索引【可使用 union 代替or】; 3)、组合索引中不是使用第一列索引;(不符合最左匹配原则) 4)、字符串类型的字段没有使用引号引起来;【 阅读全文
posted @ 2022-04-07 18:21 李若盛开 阅读(491) 评论(0) 推荐(0) 编辑
摘要:相同点: 都是基于 TCP 的可靠性传输协议 都工作在应用层 不同点: WebSocket是双向通信协议,是需要浏览器和服务器握手进行建立连接的(WebSocket在建立握手时,数据是通过HTTP传输的。但是建立之后,是不需要HTTP协议的)。与http的长链接通信相比,这种方式,不仅能降低服务器的 阅读全文
posted @ 2022-04-07 16:50 李若盛开 阅读(124) 评论(0) 推荐(0) 编辑
摘要:一、Redis主要的功能 1、哨兵(Sentinel)和复制(Replication) Redis服务器毫无征兆的罢工是个麻烦事,如何保证备份的机器是原始服务器的完整备份呢?这时候就需要哨兵和复制。Sentinel可以管理多个Redis服务器,它提供了监控,提醒以及自动的故障转移的功能,Replic 阅读全文
posted @ 2022-04-07 10:06 李若盛开 阅读(291) 评论(0) 推荐(1) 编辑
摘要:联合索引又叫复合索引,对于复合索引:Mysql从左到右的使用索引中的字段,一个查询可以只使用索引中的一部份,但只能是最左侧部分。例如索引是key index(a,b,c),可以支持a | a,b| a,b,c 3种组合进行查找,但不支持 b,c进行查找 。当最左侧字段是常量引用时,索引就十分有效。 阅读全文
posted @ 2022-04-06 11:37 李若盛开 阅读(1405) 评论(0) 推荐(0) 编辑
摘要:0、算法概述 0.1 算法分类 十种常见排序算法可以分为两大类: 比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。 非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时 阅读全文
posted @ 2022-04-05 23:11 李若盛开 阅读(22) 评论(0) 推荐(0) 编辑
摘要:1、算法步骤 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 2、代码实现 阅读全文
posted @ 2022-04-04 23:25 李若盛开 阅读(36) 评论(0) 推荐(0) 编辑
摘要:引入:Java使用Spring Boot写Restful API时,可以在代码里用注解来标识API,编译为Jar包后,运行时Web应用可以直接托管API文档。具体的可以参考这篇文章:使用swagger来做API文档。那么golang系有没有类似的做法呢? swaggo提供了golang版本的swag 阅读全文
posted @ 2022-04-03 23:35 李若盛开 阅读(660) 评论(0) 推荐(0) 编辑
摘要:安装 run -p 8088:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts-jdk11 访问 http://localhost:8088/ 加载太慢 快速打开解决办法: 1)、进入jenkins的工 阅读全文
posted @ 2022-04-02 18:03 李若盛开 阅读(101) 评论(0) 推荐(0) 编辑
摘要:系统要求 Docker Desktop for Mac 要求系统最低为 macOS Mojave 10.14 安装 1、使用 Homebrew 安装 brew install --cask docker 2、手动安装 如果需要手动下载,请点击以下 链接 下载 Docker Desktop for M 阅读全文
posted @ 2022-04-02 15:15 李若盛开 阅读(3594) 评论(0) 推荐(0) 编辑
摘要:一、docker的预备 1)、docker的概念 docker是指容器化技术,用于支持创建和使用linux容器。借助 Docker,可将容器当做轻巧、模块化的虚拟机使用。同时,还将获得高度的灵活性,从而实现对容器的高效创建、部署及复制,并能将其从一个环境顺利迁移至另一个环境,从而有助于针对云来优化应 阅读全文
posted @ 2022-04-02 11:36 李若盛开 阅读(249) 评论(0) 推荐(0) 编辑
摘要:场景:Mac安装docker brew install --cask docker 报错信息: Error: Cannot tap homebrew/cask: invalid syntax in tap! 查看brew版本 yunjingios@jimmy-2 ~ % brew -v Homebr 阅读全文
posted @ 2022-04-02 11:31 李若盛开 阅读(2843) 评论(0) 推荐(0) 编辑
摘要:在Go语言 中的 map 是无序的,这意味着无法保证遍历 map 时的顺序与元素添加的顺序一致。 map用for range遍历不能保证顺序输出,原因:在range时为引用类型(slice,map,channel)创建索引,而map的索引是未被指定的,所以无序。 如果要让 map 有序,有以下两种常 阅读全文
posted @ 2022-04-01 14:41 李若盛开 阅读(1114) 评论(0) 推荐(0) 编辑
摘要:go get https://github.com/cc14514/go-geoip2-db demo: package main import ( "fmt" "net" "github.com/cc14514/go-geoip2-db" ) func main() { db, _ := geoi 阅读全文
posted @ 2022-04-01 13:16 李若盛开 阅读(1123) 评论(0) 推荐(0) 编辑
摘要:1、数字类型(int系列、float系列) 整型 int 和浮点型 float32、float64,支持整型和浮点型数字,并且支持复数,其中位的运算采用补码。 2、字符串类型(string) 字符串就是一串固定长度的字符连接起来的字符序列。Go 的字符串是由单个字节连接起来的,字节使用 UTF-8 阅读全文
posted @ 2022-04-01 10:18 李若盛开 阅读(64) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示