2020-10-13
redis面试系列:数据结构
本文参考了《redis设计与实现》第二版
1. 数据类型
常见数据类型
string 字符串(简单动态字符串[sds],int整数)
list 列表(链表[linkedlist],压缩表[ziplist])
hash 哈希(字典[hashtable],压缩表[ziplist])
set 集合(字典[hashtable], 整数...
阅读全文
2020-08-25
mysql索引准备- 数据库与表
12345678910111213CREATE DATABASE demo;CREATE TABLE `t_test` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `x` varchar(50) DEFAULT NULL, `a` varchar(50) DEFAU...
阅读全文
2020-08-16
GO内存管理What ?内存的分配,回收,释放的过程。go的内存分配基于TCMalloc的原理实现。通常我们说内存管理指的是堆(Heap)内存管理,因为栈(Stack)不需要我们关心。
关于tcmalloctcmalloc是一个内存管理库,全称Thread-Cache Malloc,理解为带缓存的内存管理,其实就是为每一个线程创建一个缓存,每次为线程分配内存...
阅读全文
2020-08-11
揭开现代语言内存管理的神秘面纱–译自:Deepu K Sasidharan,如果你对Deepu K Sasidharan的内容感兴趣可以在twitter上面关注他,随时获取最新动态。
Part1 什么是内存管理?其实内存管理就是控制和协调应用程序访问计算机内存的过程。这是一个严肃的话题,令人困惑,因为对于很多人而言它是一个黑盒子,让人捉摸不透。
What i...
阅读全文
2020-07-15
初识闭包闭包是一种能访问当前作用域外变量的函数。
简单来说就是:使用某个函数时,依赖于该函数作用域外的环境,该函数称之为闭包。
判断一下情况是否是闭包?
A
123456func f() { name := "Jane" func() { fmt.Println("My name is ", n...
阅读全文
2020-07-07
单例模式go最大的优势之一在于在语言层面通过goroutine实现了并发编程,提高了执行效率;但是并发随之带来的事就如何保证线程安全。通过我们会使用单例模式来保证线程安全,即在程序中我们只需要某个“类”实例化一次即可,保证一个“类“仅有一个实例,并提供一个获取实例的方法。
小刀初试123456789101112131415// Instance ...typ...
阅读全文
2020-06-14
Golang中channel总结
golang里面倡导的是“通过通信来共享内存”,简单来说channel是groutine之间通信的桥梁。
1. 基本操作
声明
123456789101112// 无缓冲channel// 方式一ch := make(chan DataType)// 方式二var ch chan DataType// 有缓冲channel...
阅读全文
2020-06-14
1.osi模型与五层架构模型
2.五层架构模型中各层对应的网络协议
层
协议
应用层
HTTP,SMTP
传输层
TCP, UPD
网络层
IP, ICMP
数据链路层
PPP
物理层
IEEE802.3
3.TCP三次握手和四次握手三次握手(建立连接)
TCP是一种面向连接的协议,在发送数据之前,双方必须建立一条可信任的连接。...
阅读全文
2019-05-12
背景最近在公司(博主在一家云计算公司工作)主要做MySQL数据库产品,说白了就是给用户提供一个高可用的MySQL数据库, 我们为用户提供了一个具备服务高可用,数据一致性的运维平台。 在方案的选择中我们最开始想到的是[利用Keepalived构建高可用MySQL双主自动切换,但是数据同步只能选择双主半同步,无法保证数据的强一致性,参考率市场上常见的方案之后,任...
阅读全文
2019-05-11
  最近准备自己写一点东西,但是进场因为线上环境和本地开发环境不一致,弄得晕头转向。所以在windows里面部署vm虚拟机,在虚拟机中运行ubuntu16.04环境,然后起docker,在docker中运行lnmp集成环境。避免麻烦其实我是使用的github上大牛已经集成好的docker-compose 项目,一键执行就可...
阅读全文
上一页 1 2 3 4 5 下一页