摘要:
有时候我们想把 Docker 环境提供给别人,但是又不想提供宿主机,那么可以在 Docker 容器内运行 SSH 服务,使容器保持运行并提供给对方使用即可,下面我们以 CentOS 7.6 的 Docker 镜像为例进行配置。 首先开启 Docker 环境,为了方便可以提前映射宿主机的端口: doc 阅读全文
摘要:
我们知道在平面上两条直线的关系只有两种,也就是平行或相交,其中共线是平行的一种特殊情况。 那么对于线段,由于不能无限延长,所以会在直线的关系上有所扩展,可以按照平行线和相交线的大类再作一次分类: 两线段所在的直线相交 两线段相交 (包括一个线段的顶点在另外一个线段的情况) 两线段不相交,即没有交点 阅读全文
摘要:
Redis是一种内存数据库,数据都存储在内存中,因此可以快速地直接基于内存中的数据结构进行高性能的操作,但是所有数据都在内存中,一旦服务器宕机,内存中的数据就会全部丢失,数据将无法恢复,因此Redis也有自己的持久化机制,但是要注意这个持久化和普通数据库的持久化不同,持久化文件必须全部读取到内存才可 阅读全文
摘要:
我们在编写C代码时,会使用两种类型的内存,一种是栈内存,另外一种是堆内存,其中栈内存的申请和释放是由编译器来隐式管理的,我们也称为自动内存,这种变量是最简单而且最常用的,然后就是堆内存,堆的申请和释放都由程序员显式完成,因此使用起来也必须小心谨慎,以避免缺陷。 在C语言中通常是使用malloc/fr 阅读全文
摘要:
Redis是一种内存数据库,所以可以很方便的直接基于内存中的数据结构,对外提供众多的接口,而这些接口实际上就是对不同的数据结构进行操作的算法,首先redis本身是一种key-value的数据库,对于value常见的类型有: 字符串(string)、散列(hash)、列表(list)、集合(set)、 阅读全文
摘要:
Golang中的map底层使用的数据结构是hash table,基本原理就和基础的散列表一致,重点是Golang在设计中采用了分桶(Bucket),每个桶里面支持多个key-value元素的这种思路,具体可以参考下面的图[图片来源1]: 可以看到上面的B就是Bucket,每个桶中会存储多组K/V,m 阅读全文
摘要:
2021.12.10凌晨,Apache Log4j远程代码执行漏洞细节被公开,参考链接:https://unit42.paloaltonetworks.com/apache-log4j-vulnerability-cve-2021-44228/,也可以在cve网站上查询到:https://www.c 阅读全文
摘要:
缓存是我们日常开发中来提高性能最直接的方式,经常会听到有人说:性能不行?是因为你没加缓存!常见的缓存有外部缓存服务以及程序内部缓存,外部缓存服务包括:Redis、Memcached等,内部缓存就是我们可以在程序内使用类似HashMap这种方式来建立缓存,另外比如Web中常见的cdn静态资源缓存等也属 阅读全文
摘要:
1.从平均负载谈起 我们每次发现线上系统变慢时,第一件事往往都会使用top或者uptime命令查看cpu的负载以及占用率,比如top命令会有下面的结果: top - 15:51:39 up 84 days, 1:24, 4 users, load average: 0.20, 0.22, 0.18 阅读全文
摘要:
作为自学计算转行或者从培训班出来直接工作的程序员,都存在计算机科学知识不足的问题,甚至连科班出身的人毕业后因为长时间工作而忽略了基础知识温习,也存在同样的问题。我们作为一名软件方面的工程师,不应只满足于高级语言、框架或工具的使用,这些都只能带来短期的效益而终究会变得无用,因此每个软件工程师都应该制定 阅读全文