路漫漫其修远兮


  • 首页

  • 关于

  • 分类

  • 归档

  • 搜索

Minio对象存储服务

发表于 2024-07-12 | 分类于 Oss |
字数统计: 503 字 | 阅读时长 ≈ 2 分钟

1.软件介绍

MinIO是一个高性能的对象存储服务,兼容Amazon S3 API。它非常适用于云原生应用程序、备份、和归档数据等场景。

2.软件安装

访问 MinIO 官方网站的下载页面 (https://min.io/download) 或者使用 curl 命令,找到适合服务器版本的文件,直接从命令行下载:

1
curl https://dl.min.io/server/minio/release/linux-amd64/minio -o minio

设置为可执行程序,并添加软连接

1
2
3
4
5
6
#设置可执行权限
chmod +x minio
#拷贝到合适的目录
cp ./minio /usr/local/bin/
#设置软连接
ln -s /usr/local/bin/minio /usr/bin/minio
阅读全文 »

初识Docker

发表于 2023-08-09 | 分类于 容器化 |
字数统计: 4.6k 字 | 阅读时长 ≈ 16 分钟

初识Docker

1. Docker为什么诞生?

随着计算机硬件的性能提升,会有这些现象发生:

  • 计算机上可运行的软件越来越多,不同软件之间或者相同软件不同版本之间,会造成一些冲突,这时候需要一种技术,将冲突的软件进行隔离
  • 硬件性能过剩,希望将其最大限度的利用起来
  • 操作系统上安装的软件,希望能完整的copy给其他人,而不用重新安装

为了应对上述需求,一般是一台电脑安装多个操作系统或者多个电脑协同工作,但缺点显而易见,很麻烦,且没法最大限度的利用硬件资源。

阅读全文 »

Golang 可重入锁

发表于 2023-07-12 | 分类于 Golang |
字数统计: 484 字 | 阅读时长 ≈ 2 分钟
  1. 什么是可重入锁?

    1
    可重入锁又被称为递归锁,是指在同一个线程在外层方法获取锁的时候,在进入该线程的内层方法时自动获取锁,不会因为之前已经获取过还没释放再次加锁导致死锁。
  2. 为什么Go语言没有可重入锁?

    1
    Mutex是不可重入的锁,Mutex的实现没有记录哪个goroutine拥有这把锁,理论上,任何goroutine可以随意的Unlock这把锁,所以没办法计算重入条件,并且Mutex重复Lock会导致死锁
阅读全文 »

Golang 深拷贝

发表于 2023-07-11 | 分类于 Golang |
字数统计: 356 字 | 阅读时长 ≈ 1 分钟
  1. 深拷贝

    1
    拷贝的是数据本身,创造一个新对象,新创建的对象与原对象不共享内存,新创建的对象在内存中开辟一个新的内存地址,新对象值修改时不会影响原对象值
  2. 浅拷贝

    1
    浅拷贝:拷贝的是数据地址,只复制指向的对象的指针,此时新对象和老对象指向的内存地址是一样的,新对象值修改时老对象也会变化
阅读全文 »

归并排序

发表于 2023-03-30 | 分类于 数据结构&算法 |
字数统计: 536 字 | 阅读时长 ≈ 2 分钟
  1. 归并排序

    1
    2
    3
    4
    归并排序(Merge sort)是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。
    作为一种典型的分而治之思想的算法应用,归并排序的实现由两种方法:
    1.自上而下的递归
    2.自下而上的迭归
  2. 算法步骤

    1
    2
    3
    4
    5
    申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列;
    设定两个指针,最初位置分别为两个已经排序序列的起始位置;
    比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指针到下一位置;
    重复步骤 3 直到某一指针达到序列尾;
    将另一序列剩下的所有元素直接复制到合并序列尾。
阅读全文 »

堆排序

发表于 2023-03-30 | 分类于 数据结构&算法 |
字数统计: 647 字 | 阅读时长 ≈ 2 分钟
  1. 堆排序

    1
    2
    3
    4
    5
    堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。
    堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。
    堆排序可以说是一种利用堆的概念来排序的选择排序。分为两种方法:
    1.大顶堆:每个节点的值都大于或等于其子节点的值,在堆排序算法中用于升序排列;
    2.小顶堆:每个节点的值都小于或等于其子节点的值,在堆排序算法中用于降序排列;
  2. 算法步骤

    1
    2
    3
    4
    创建一个堆 H[0……n-1];
    把堆首(最大值)和堆尾互换;
    把堆的尺寸缩小 1,并调用 shift_down(0),目的是把新的数组顶端数据调整到相应位置;
    重复步骤 2,直到堆的尺寸为 1。
阅读全文 »

插入排序

发表于 2023-03-29 | 分类于 数据结构&算法 |
字数统计: 372 字 | 阅读时长 ≈ 1 分钟
  1. 选择排序

    1
    2
    3
    插入排序的代码实现虽然没有冒泡排序和选择排序那么简单粗暴,但它的原理应该是最容易理解的了,因为只要打过扑克牌的人都应该能够秒懂。
    插入排序是一种最简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。
    插入排序和冒泡排序一样,也有一种优化算法,叫做拆半插入。
  2. 算法步骤

    1
    2
    3
    将第一待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列。
    从头到尾依次扫描未排序序列,将扫描到的每个元素插入有序序列的适当位置。
    如果待插入的元素与有序序列中的某个元素相等,则将待插入元素插入到相等元素的后面。
阅读全文 »

选择排序

发表于 2023-03-29 | 分类于 数据结构&算法 |
字数统计: 263 字 | 阅读时长 ≈ 1 分钟
  1. 选择排序

    1
    选择排序是一种简单直观的排序方法,时间复杂度O(n²),所以使用的时候,数据规模越小越好。
  2. 算法步骤

    1
    2
    3
    首先从未排序序列中找到最小(大)元素,存放到已排序序列的起始位置。
    再从剩余未排序元素中继续寻找最小(大)元素,存放到已排序序列的末尾。
    重复第二步,直到所有元素均排序完毕
阅读全文 »

冒泡排序

发表于 2023-03-29 | 分类于 数据结构&算法 |
字数统计: 381 字 | 阅读时长 ≈ 1 分钟
  1. 冒泡排序

    1
    2
    3
    冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。
    走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
    这个算法的名字由来是因为越小的元素会经由交换慢慢"浮"到数列的顶端。
  2. 算法步骤

    1
    2
    3
    4
    比较相邻的元素。如果第一个比第二个大,就交换他们两个。
    对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。
    针对所有的元素重复以上的步骤,除了最后一个。
    持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
阅读全文 »

google身份验证器&动态口令验证

发表于 2021-04-09 | 分类于 google authenticator |
字数统计: 607 字 | 阅读时长 ≈ 2 分钟

1.为什么使用动态口令?

1
2
3
一般我们在登陆网站时,需要提供账号密码进行登陆验证。但是一单账号密码泄露,则账户存在很大的风险。
在此基础之上,有另外的方案:短信验证,邮件验证等等,但是都会存在发送延迟的问题。
使用类似银行动态口令的验证方式,可以实时进行二次验证,无需再受制于短信无法到达等情况。

2.动态口令的原理?

1
2
3
4
5
6
首先客户端和服务端先协商,或由服务端派发一个秘钥(一般不明文显示),此秘钥不被其他第三方知道。
进行验证时,客户端根据秘钥算出一个密码,服务端根据相同的算法验证。
一般有两种模式:
1.时间模式:由当前时间戳和秘钥,计算出动态口令,一般口令不能变化太快,一般为30s。
服务端对于前后两个时段区间进行验证,只要有一个符合,则视为符合
2.计数器模式:客户端和服务端各有一个计数器,而且事先将数值同步,根据秘钥和计数器进行口令的计算。
阅读全文 »
123
Acker

Acker

29 日志
17 分类
30 标签
GitHub Weibo
近期文章
  • Minio对象存储服务
  • 初识Docker
  • Golang 可重入锁
  • Golang 深拷贝
  • 归并排序
0%

©2024 Ackerc

陕公网安备 61011402000138号

陕ICP备17008282号-2