- 博客(54)
- 资源 (2)
- 收藏
- 关注
原创 sonyflake源码解读
网上大多数文章都只是说了snowflake或sonyflake的原理,但好像都没有多少是对源码的解读,对于初学者来说还需要多一些从别的角度去学习这个算法的思想,所以写了这篇文章,尝试从源码的角度去理解这个算法sonyflake官方说了是受Twitter的Snowflake启发而衍生的分布式唯一ID生成算法。目录结构既然我们是从源码的角度去学习,那么就要先了解清楚这个包的目录结构是如何的。能看得出来,整个包的文件数都是非常少的,非常精简├── awsutil │ └── aw
2021-05-20 00:36:00
1268
5
原创 hashicorp/raft-boltdb源码解读
本意是想解读Hashicorp Raft,看了一下,发现其引用了一些包,也是这个组织开源的模块,所以干脆先看看这些模块是如何实现的,就当是为了Hashicorp Raft做前期的了解hashicorp/raft-boltdb该库引用了BoltDB。BoltDB受到LMDB的启发,是一个纯Go实现的简易key/value存储库。目录结构以下基于tag:v2.2.0https://github.com/hashicorp/raft-boltdb/tree/v2.2.0既然我们是从源码的角度去
2021-12-05 23:28:10
752
原创 mysql中高阶玩法系列(八)
列出服务器上的二进制日志文件master服务器的二进制日志文件的状态信息显示二进制日志中的事件列出了在 table 缓存中当前打开的非临时的表
2021-08-21 15:39:08
325
原创 mysql中高阶玩法系列(七)
目录三种语句结束符查看当前SQL执行状态、是否锁表巨人的肩膀VChat先定义一张表,在之后的讲解中的所有例子,都是基于这张表做的演示,那么就定义一张最常见的用户表吧。CREATE TABLE `user` ( `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT, `name` VARCHAR(45) COLLATE UTF8MB4_UNICODE_CI NOT NULL, `pwd` VARCHAR(255) COLLATE UTF8MB
2021-08-20 08:41:38
593
原创 mysql中高阶玩法系列(六)
目录系统默认数据库巨人的肩膀VChat系统默认数据库数据其实可以存储在⽂本⽂件中,但是只适⽤于数据量很少的时候,数据量很少的情况下,在⽂件中保存数据、读写数据,操作简单便利且速度快;但是当数据量稍微⼤的情况,普通⽂本⽂件保存数据的⽅式就显得捉襟⻅肘,甚⾄束⼿⽆策。⽐如数据结构、数据类型⽆法设计,数据读写⽅式复杂且速度慢,对于复杂的数据查询更是⽆法做到。所以需要专业的数据库软件;存储数据也可以使⽤微软的 Excel,但是,随着数据越来越多,在 Excel这样的电⼦表格⾥查找数据就变得很慢,⽽且不可靠。
2021-08-18 23:18:28
196
原创 Go中使用加密算法
哈希算法(MD5 RipeMD160 SHA256 )DES、3DES对称加密 (Data Encryption Standard,数据加密标准算法)RSA⾮对称加密算法椭圆曲线算法椭圆曲线数字签名算法ECDSA数字签名DSA编码解码 (base64 base58 base58check)
2021-08-14 10:07:45
1097
原创 正则表达式
元字符优先级顺序(从⾼到低,从左到右)\ 转义字符() 圆括号, [] ⽅括号? {n} {n,} {n,m} 限定符^ $ 开始和结束标识| "或"操作常⽤的正则表达式的写法:1、中⽂字符:1+$2、⼿机号码:^(86)?0?1\d{10}$电话号码:^((d{3,4})|d{3,4}-)?d{7,8}$3、Email地址:2+[\w-.]?@[\w-]+(.[A-Za-z]{2,5})+$Email地址:^w+[-+.]w+)@w+([-.]w+).w+([-.
2021-08-12 08:54:03
520
原创 Go程序中操作MySQL数据库
“github.com/go-sql-driver/mysql”go官⽅仅提供了database包database包下有sql/driver。该包⽤来定义操作数据库的接⼝,这保证了⽆论使⽤哪种数据库,他们的操作⽅式都是相同的。 但go官⽅并没有提供连接数据库的driver,如果要操作数据库,还需要第三⽅的driver 包。Golang 提供了database/sql包,⽤于对SQL数据库的访问。它提供了⼀系列接⼝⽅法,⽤于访问关系数据库。它并不会提供数据库特有的⽅法,那些特有的⽅法交给数据
2021-08-10 23:29:59
438
1
原创 扒一扒B站(三)
免责声明本文仅用于学习,不得将技术分析的内容用于商业或者非法用途,如因本文内容造成的不良影响和后果与本作者无关,如有侵权,请及时联系作者进行处理,予以删除。小破站越来越多人用了,作为一个B站的深度用户,又是一个码农,那就来分析一下,看看能不能扒到一些有意思的东西。番剧在B站里可谓是不可或缺的一部分,下面以 让子弹飞 为例,看看有没有一些接口信息不太一样的https://api.bilibili.com/pgc/player/web/playurl?ep_id=199612返回视频的一些码率、时
2021-08-08 22:06:46
509
原创 扒一扒B站(二)
免责声明本文仅用于学习,不得将技术分析的内容用于商业或者非法用途,如因本文内容造成的不良影响和后果与本作者无关,如有侵权,请及时联系作者进行处理,予以删除。小破站越来越多人用了,作为一个B站的深度用户,又是一个码农,那就来分析一下,看看能不能扒到一些有意思的东西。API接口里有些参数的作用需要提前了解一下字段名作用aidav号bvidbv号cid番剧视频弹幕池id号,通过相关api可由cid找到对应的资源列表oid番剧视频弹幕池id号,通过相关api
2021-08-08 16:58:55
1851
原创 通过命令行使用bandizip压缩与解压
bandiziphttps://cn.bandisoft.com/bandizip/help/parameter/...
2021-06-27 14:14:50
16405
3
原创 看看世界级企业的golang教程
目录介绍本学习路径中的模块Go 入门了解如何在 Go 中使用包、变量和函数在 Go 中使用控制流在 Go 中使用数据类型以及结构、数组、切片和映射在 Go 中实现错误处理和日志记录在 Go 中使用方法和接口了解 Go 中并发的工作原理在 Go 中编写并测试程序小结巨人的肩膀VChat介绍微软golang中文教程,我们大概来看一下从截图能看到,这个教程针对的群体是初级开发人员及学生,而且人家也说了先决条件需要编程基础知识及至少熟悉一种编程语言,那么就说明至少目前来说还没有官方或大企业推出适合零基础
2021-06-09 00:36:25
741
5
原创 linux小抄
目录linux的目录结构常用命令lsmkdirfileshutdownaliasfindhistorygrepsortuniqwcwhichwhereispspgrepkilltopgziptar进程权限软件管理RPMYUMAPTRsync巨人的肩膀VChatlinux的目录结构Linux文件系统是呈树形结构目录说明/Linux文件系统的入口,也是处于最高一级的目录/bin基本系统所需要的命令。功能和/usr/bin类似,这个目录中的文件都是可执行的,普通用户都可以使
2021-02-03 00:28:41
237
原创 redis再入
目录string索引hashlistsetzset事务乐观锁Lua 脚本其它命令巨人的肩膀VChatstring储存文字、数字或者二进制数据索引字符串的索引(index)以 0 为开始,从字符串的开头向字符串的结尾依次递增,字符串第一个字符的索引为 0 ,字符串最后一个字符的索引 为 N-1 ,其中 N 为字符串的长度。除了(正数)索引之外,字符串 还有负数索引:负数索引以 -1 为开始,从字符串的结尾向字符串的开头依次递减,字符串的最后一个字符的索引 为 -N ,其中 N 为字符串的长度。
2021-02-01 20:29:05
338
原创 redis大要
sentinel是redis高可用的解决方案,可以在一个架构中运行多个 Sentinel 进程(progress)以监视一个或者多个redis master服务,以及这些master服务的所有从服务;这些进程使用流言协议(gossip protocols)来接收关于主服务器是否下线的信息, 并使用投票协议(agreement protocols)来决定是否执行自动故障迁移, 以及选择哪个从服务器作为新的主服务器。
2021-01-31 15:49:19
780
原创 web安全浅入
XSS又叫CSS(Cross-SiteScripting),跨站脚本攻击。CSRF(Cross-site request forgery),跨站请求伪造。
2021-01-10 18:51:04
405
2
原创 prometheus浅入
prometheusPrometheus 的整体架构以及生态系统组件如下图所示:prometheus 各组件介绍Prometheus Server: 使用pull方式采集监控数据,在该组件上配置监控数据的采集和告警规则。Client Library: 客户端库,为需要监控的服务生成相应的 metrics 并暴露给prometheus server。当 prometheus server 来 pull 时,直接返回实时状态的 metrics。Push Gateway: 主要用于短期的 jo
2020-12-06 23:31:19
379
原创 进程、线程、协程和Goroutine知识
进程进程是一种系统运行行动,是程序的执行实体。ps -aux | grep xxx # 根据应用名找到该应用的进程id号(即pid).ps xxx # 根据pid查看当前进程PID:进程IDTTY:终端的次要装置号码 (minor device number of tty)STAT: 进程状态TIME: 进程消耗CPU的时间COMMAND: 进程执行时的命令的名称和参数线程线程是运算调度的最小单元,线程是系统级别的,由操作系统调度,能同时运算多个任
2020-11-22 23:26:30
328
原创 goland进阶-调试本地进程
https://www.jianshu.com/p/0d728cc25402https://studygolang.com/articles/20655?fr=sidebarhttps://github.com/google/gopshttps://www.jetbrains.com/help/go/2020.1/attach-to-running-go-processes-with-debugger.htmlhttp://blog.studygolang.com/2020/05/debugging
2020-11-15 12:58:27
2312
原创 可靠UDP浅入
网络协议的可靠性TCP协议(Transmission Control Protocol,传输控制协议)为应用层提供可靠的、面向连接的和基于流(stream)的服务。使用超时重传、数据确认等方式来确保数据包被正确发送至目的地。UDP(User Datagram Protocol,户数据报协议)是无连接的,面向消息的数据传输协议,与TCP相比,有两个致命的缺点:(1)数据包容易丢失;(2)数据包无序。所以必须制定上层的协议,包括:流控机制、超时机制、重排机制、重传机制。目前最常用的两个协
2020-05-25 23:29:18
1422
原创 elasticsearch浅入
以下的所有操作是发生在centos7.5下的,另请先自行准备docker环境,下面将会用docker来安装一个单节点的elasticsearch,有很多文章说elasticsearch不可以用root用户,但是我用的就是root用户,至于为什么不可以,还有至于为什么又可以,学识浅微,目前并不知道,等以后该系列更新到一定程度后,我想我就可以解答了吧。前奏# 搜索镜像docker search...
2020-03-23 01:00:07
195
原创 redis浅入
Redis 常被称作是一款数据结构服务器(data structure server)。Redis 的键值可以包括字符串(strings)类型,同时它还包括哈希(hashes)、列表(lists)、集合(sets)和 有序集合(sorted sets)等数据类型。对于这些数据类型,你可以执行原子操作。例如:对字符串进行附加操作(append);递增哈希中的值;向列表中增加元素;计算集合的交集、并...
2020-02-16 22:07:26
203
原创 MongoDB浅入
MongoDB一款非关系型的数据库,不支持外键,不支持事务,不支持数据类型约定。传统数据库由于受到各种关系的约束,各种数据形式的束缚,难以处理海量数据以及超高并发的业务场景。为了解决上述问题,所以需要抛弃关系的约束,以求在更高层次上突破瓶颈的数据库系统。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富、最像关系数据库的。由于关系型数据库存储对数据之间存在...
2020-02-16 20:29:17
560
原创 bash浅入
Bash(GNU Bourne-Again Shell)是一个为GNU计划编写的Unix shell,它是许多Linux平台默认使用的shell。shell是一个命令解释器,是介于操作系统内核与用户之间的一个绝缘层。准确地说,它也是能力很强的计算机语言,被称为解释性语言或脚本语言。它可以通过将系统调用、公共程序、工具和编译过的二进制程序”粘合“在一起来建立应用,这是大多数脚本语言的共同特征,所以...
2020-02-15 18:28:43
504
1
原创 RabbitMQ浅入
启动rabbitmq-server启动rabbitmq服务,以便使用systemctl start rabbitmq-server.service查看服务状态rabbitmqctl status
2020-01-22 23:15:24
282
原创 git常用命令总结--进阶
命令查看远程分支git branch -r查看本地分支对应的远程分支的跟踪关系git branch -vv -a在远程某分支的基础上,在本地创建一个新分支git checkout -b newBrach origin/[branchname]在工作中经常要求某个分支只能从远程的某个分支中拉出来,所以一般可以用这个命令在当前分支上,合并某分支git re...
2019-10-23 16:45:30
231
原创 根据经纬度坐标计算两点的距离
现在如果有个业务需求,就是要做一个根据定位坐标实现计算距离并找到附近的店铺的推荐功能,已知数据库中会存储店铺的经纬度坐标。那么,这个需求已经很明确了,在要求不高的情况下,只要计算两个坐标的距离,进行一次排序即可。下面会给出其中的核心代码,是某个大佬从“google maps”的脚本里扒的代码,是用来计算两点间经纬度距离,这样的计算方式得到的距离并非真实的距离,是理论上的直线距离,但其距离也已经很...
2019-10-23 15:54:55
1941
instantclient-linux.x64-12.2.0.1.0
2018-12-29
oracle-instantclient-12.2.0.1.0-1.x86_64的rpm格式
2019-01-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅