bjmayor 发布于 2021-12-07

docker工作中常用命令参考

[TOC]

工作中用的比较多的命令。

docker

run

systemctl start docker #启动 systemctl daemon-reload #守护进程重启 systemctl restart docker / service docker restart #重启docker服务 docker service docker stop / docker systemctl stop docker #关闭

阅读全文 »

bjmayor 发布于 2021-11-30

mongodb手册

[TOC]

mongodb, 文档数据库,超高性能。无事务。

安装

osx

# 进入 /usr/local cd /usr/local # 下载 sudo curl -O https://fastdl.mongodb.org/osx/mongodb-osx-ssl-x86_64-4.0.9.tgz # 解压 sudo tar -zxvf mongodb-osx-ssl-x86_64-4.0.9.tgz # 重命名为 mongodb 目录 sudo mv mongodb-osx-x86_64-4.0.9/ mongodb

安装完成后,我们可以把 MongoDB 的二进制命令文件目录(安装目录/bin)添加到 PATH 路径中:

export PATH=/usr/local/mongodb/bin:$PATH

创建日志及数据存放的目录:

  • 数据存放路径:

    sudo mkdir -p /usr/local/var/mongodb
    
  • 日志文件路径:

    sudo mkdir -p /usr/local/var/log/mongodb
    

接下来要确保当前用户对以上两个目录有读写的权限:

sudo chown runoob /usr/local/var/mongodb sudo chown runoob /usr/local/var/log/mongodb

阅读全文 »

bjmayor 发布于 2021-11-13

golang cron源码解读

cron

https://github.com/robfig/cron 这个定时任务比较流行,我在项目中也在用。不过在阅读源码前,为了保证任务是串行运行,我还加了处理代码。
看了源码后才知道本身就是支持的。

阅读全文 »

bjmayor 发布于 2021-10-27

goroutine分析

本文档最后一次更新时所用的 Go 版本是 1.15.6,但是大多数情况下,新老版本都适用。

描述

Go 运行时在一个称为 allgs 简单切片追踪所有的 goroutines。这里面包含了活跃的和死亡的 goroutine 。死亡的 goroutine 保留下来,等到生成新的 goroutine 时重用。

Go 有各种 API 来监测 allgs中活跃的 goroutine 和这些 goroutines 当前的堆栈跟踪信息,以及各种其他属性。一些 API 将这些信息公开为统计摘要,而另外一些 API 则给每个单独的 goroutine 信息提供查询接口。

尽管 API 之间有差异,但是活跃的 goroutine 都有如下共同 定义

  • 非死
  • 不是系统 goroutine,也不是 finalizer goroutine。

换句话说,正在运行的 goroutine 和那些等待 i/o、锁、通道、调度的 goroutine 一样,都被认为是活跃的。尽管人们可能会天真的认为后面那几种等待的 goroutine 是不活跃的。

阅读全文 »

bjmayor 发布于 2021-10-26

哲学家就餐问题

哲学家就餐问题

哲学家就餐问题是一个经典的同步问题,它是大量并发控制问题的一个例子。这个代表型的例子满足:在多个进程之间分配多个资源,而且不会出现死锁和饥饿。

本文内容主要是摘自《操作系统精髓与设计原理》

阅读全文 »

bjmayor 发布于 2021-10-24

如何解决通信中的安全问题-数字证书的由来

[TOC]

加密的基础知识。文章里的我是作为黑客出现的。。本文内容直接来源于《我的第一本算法书》去了些图片,做了简化。

在现代互联网社会中,加密技术是不可或缺的。那么对数据进行加密和解密时,计算机会进行哪些处理呢?这一节我们将讲解加密技术的必要性和基本原理。

阅读全文 »