自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

hg_zhh

莫道君行早,更有早行人。全心敲代码,天道自酬勤。

  • 博客(478)
  • 资源 (5)
  • 收藏
  • 关注

原创 一致性哈希原理

阐述一致性hash的背景、原理以及部分使用方法

2024-04-13 20:14:05 696

原创 常见的限流器算法总结

此文将简要总结讨论常见限流算法的原理、优缺点等问题。

2024-04-12 10:50:57 743

原创 缓存策略以及如何选择正确的策略

本文将讲述两种读策略(Cache-Aside、Read-Through)和 三种写策略(Write-Through 、Write-Around、Write-Back/Write-Behind)的基本原理、适用场景、优缺点等信息。

2024-04-11 09:40:34 711

原创 Ticket Servers: Distributed Unique Primary Keys on the Cheap(经济高效的分布式ID生成方案) 翻译

本文是对Ticket Servers: Distributed Unique Primary Keys on the Cheap的翻译,此文主要讲述了flicker公司的用于生成分布式ID的Ticker Servers 的背景、原理、具体方法、以及存在的问题。

2024-04-10 11:00:36 1381 1

原创 分布式系统中的唯一ID生成方法

该文只是简单的总结了一些不同的唯一ID生成方法

2024-04-10 09:42:55 872 2

原创 任意多个磁盘时的kickstart配置方法

通过kickstart对任意多个磁盘做配置

2023-11-27 23:30:26 596 3

原创 高性能本地缓存Ristretto(四)—— NumCounters 与 MaxCost参数的设置

ristretto 中 NumCounters 和MaxCost 参数的设置方法

2023-08-18 01:24:16 395 1

原创 docker-server(moby)源码窥探

docker 服务端的代码,已经被单独划分为一个仓库:moby。此文将分析dockerd在启动过程中的重要步骤。为了节省篇幅,突出显示重要部分,在源码的截图中将以…代替次要的逻辑,仅保留重要的信息。

2022-11-16 00:32:30 528

原创 基于alpine进行dockerfile 构建时,修改apk源

这里提供一种在dockerfile中修改源的方法:在 RUN的第一步,先修改源,并使其生效。时,一直卡住,最后显示超时。这是因为众所周知的原因,只需修改apk的源即可。在基于alpine进行dockerfile 构建时,当进行到。

2022-11-14 19:04:23 1671

原创 搭建docke的调试环境

搭建docke-cli的调试环境在搭建docker-cli的调试环境时,踩了些坑,这里总结了一个比较顺利的方式,供大家参考。使用的是VMware16.2.4安装得centos7.9.2009的操作系统,编译器用的VScode,go的版本为1.18, docker-cli的版本为1.20.10。

2022-11-10 22:33:02 651 2

原创 docker-cli源码窥探

以 docker ps -a 为例,解析docker-cli的执行过程

2022-11-10 21:21:21 727

原创 使用nsenter在容器内部执行宿主机的命令

这里提供一种思路,可以不在容器内安装,就能在容器内执行某些命令。

2022-11-05 15:39:18 1011

原创 使用iPXE自动化安装ubuntu22.04

使用iPxe 自动化安装ubuntu22.04

2022-11-03 15:13:13 5156 4

原创 select&poll&epoll

在Linux系统中,提供了实现IO复用的三个系统调用函数,分为是select,poll,epoll。

2022-09-27 21:21:48 334

原创 高性能本地缓存Ristretto(三)——淘汰策略

之前提到过,缓存即 存储 和 淘汰策略。一个好的淘汰策略,对于提升命中率起着至关重要的作用。而ristretto采用了一种将SampledLFU 与 TinyLFU相结合的策略。

2022-09-22 00:21:09 320

原创 高性能本地缓存Ristretto(二)——过期策略

ristretto提供了SetWithTTL()方法,支持创建key的同时,并设置一个过期时间。ristretto 利用嵌套的map结构,并结合巧妙的存储方式,实现了对每一个key的过期时间的管理。并能在时间到期后,尽快的删除过期的key,以节省资源开销。

2022-09-21 01:08:44 488

原创 高性能本地缓存Ristretto(一)——存储策略

本文主要结合部分代码分析Ristretto的存储策略及实现方式。Ristretto是Dgraph基于golang实现的一个高性能的本地缓存库。特点是高命中率,高吞吐量,可自定义存储成本,支持一些自定义回调函数,并提供了较多的统计信息。

2022-09-20 00:28:59 1325 3

原创 nsq连接池的实践

最近的项目,需要用到nsq作为消息队列,使用的go-nsq插件,但是该插件并没有提供连接池。因此,需要借助其他工具,实现该需求。一开始想到了使用sync.pool ,但是这玩意并不是适合存储连接资源,经过一番搜索,发现这篇文章:golang通用自定义连接池的实现 ,作者提得到他写的插件也适用于nsq连接池,同时给出了例子,但是他给的例子好像是不完整的。而且他在代码仓库中 给出的例子,并不是nsq相关的。基于以上情况,我借助该工具,结合go-nsq,实现了一个简单的nsq连接池demo(严格地说此实现不算

2022-04-04 21:28:46 393

原创 在gin框架中实现csrf防护的解决方案(gin+gorilla/csrf)

背景由于实际需求,需要将原来基于flask框架的web模块,使用gin框架重构,并且并加上CSRF防护。为此我做了一些调研,并最终利用gorilla/csrf 为基于gin框架的web模块添加csrf防护。前期调研gin框架因为其速度快的特点被广泛使用,同时该框架功能也及其简单。gin不像beego提供了各种丰富的组件,因此需要使用者根据实际需要灵活组合。自然,gin也当然不会提供csrf功能。在此之前,我调研了如下几种csrf中间件:https://github.com/gorilla/csrf

2022-01-15 19:30:12 2557 3

原创 VM中使用NAT模式,配置centos7 连接网络

最近需要学习linux。安装完虚拟机后,无法联网。通过百度后得到如下的步骤,亲测可以连接外网,可以连接Xshell。

2021-08-08 16:20:09 999 3

原创 leetcode——1310——子数组异或查询

1310-子数组异或查询如果暴力解O(n^2)的复杂度。 public int[] xorQueries(int[] arr, int[][] queries) { int total=queries.length; int ans[] = new int[total]; for(int i=0;i<total;i++){ for(int j=queries[i][0];j<queries[i][1];j++){

2020-07-12 23:22:08 240

原创 静态代理

静态代理的例子,参考https://blog.csdn.net/qq_43298772/article/details/90763186对于新人结婚,最方便就是请婚庆公司,所有工作交由婚庆公司办理,新人只要按照婚庆公的安排,在正确的地点出席婚礼就行。public class DaiLiTest { public static void main(String[] args) { ...

2020-04-25 14:05:15 143

原创 排序问题

最近遇见很多排序问题:这sort()用惯了,原理就忘了快速排序可以利用import java.util.*;public class Main { public static void main(String[] args) { int arr[]={9,5,3,5,2,6,7,3,5,8}; System.out.println(Arrays...

2020-03-20 21:58:46 158

原创 剑指offer——数据流中的中位数

题目描述如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。我们使用Insert()方法读取数据流,使用GetMedian()方法获取当前读取数据的中位数。Lambda 表达式 https://www.runoob.com/java/java8-lambda-e...

2020-03-17 18:11:17 152

原创 剑指offer——对称的二叉树

题目描述请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。思路,跟数的子结构那题很像,传送将判断子结构的操作,改一下。对于两个节点P1,P2,只要,P1.left == P2.right 且P1.right==P2.left,那么这两个节点对应的子数就是呈对称的.所以只要判断,根节点的左右子树(红色,绿色)是否对称,就行了pu...

2020-03-15 17:31:27 114

原创 剑指offer——构建乘积数组

题目描述给定一个数组A[0,1,…,n-1],请构建一个数组B[0,1,…,n-1],其中B中的元素B[i]=A[0]A[1]…*A[i-1]A[i+1]…*A[n-1]。不能使用除法。(注意:规定B[0] = A[1] * A[2] * … * A[n-1],B[n-1] = A[0] * A[1] * … * A[n-2];)把红色,绿色分开算,然后在相乘,这样就可以将o(n2 ) 转化...

2020-03-15 16:51:22 117

原创 剑指offer——矩阵中的路径

题目描述请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 例如​ 矩阵中包含一条字符串"bcced"的路径,但是矩阵中不包含"abcb"路径,因为字符串的第一个字符b占据了矩阵中的第一行第二个格子之后,路径不能再...

2020-03-14 18:38:54 111

原创 剑指offer——机器人的运动范围

题目描述地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子?思路,深搜就可以了,不用回溯;public...

2020-03-14 17:48:37 97

原创 剑指offer——滑动窗口的最大值

暴力:枚举滑动窗口的起点,查询在窗口内的最大值import java.util.ArrayList;public class Solution { public ArrayList<Integer> maxInWindows(int [] num, int size) { ArrayList<Integer> ans=new Array...

2020-03-14 16:10:38 165

原创 剑指offer——按之字形顺序打印二叉树

题目描述请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。思路:在层序遍历的基础上,对偶数层反转import java.util.ArrayList;import java.util.ArrayList;import java.util.LinkedList;import java.util....

2020-03-14 14:22:58 76

翻译 剑指offer视频讲解

为一个up主打callhttps://space.bilibili.com/319540330/

2020-03-14 12:09:14 473

原创 剑指offer——把二叉树打印成多行

题目描述从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。思路:层序遍历队列实现,关键在于每一层要分开,本来想着记录每个节点对应的层信息,但是需要map太麻烦。不如直接记录每一层有多少个,把每一层分开处理。import java.util.ArrayList;import java.util.LinkedList;import java.util.Queue;/*...

2020-03-14 12:07:23 114

原创 剑指offer——链表中环的入口结点

题目描述给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。思路:画个图吧迭代链表,每次都放进一个集合里,如果当前节点已经出现在集合里,说明有环,并且该节点就是环的入口/* public class ListNode { int val; ListNode next = null; ListNode(int val) { ...

2020-03-14 10:32:43 111

原创 剑指offer——数组中重复的数字

题目描述在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。思路:我的思路是重新开辟数组保存每个数出现的次数,然后判断次数是否大于1,最后如果有数字大于length-1,或者小于0,...

2020-03-13 17:42:36 100

原创 剑指offer——把字符串转换成整数

题目描述将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0输入描述:输入一个字符串,包括数字字母符号,可以为空输出描述:如果是合法的数值表达则返回该数字,否则返回0示例1输入复制+21474836471a33输出复制21474836470关键在于处理,整数最后会超出-231 ,232-1 的范围。pub...

2020-03-13 17:13:41 97

原创 字节跳动——手串

]手串时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 64M,其他语言128M作为一个手串艺人,有金主向你订购了一条包含n个杂色串珠的手串——每个串珠要么无色,要么涂了若干种颜色。为了使手串的色彩看起来不那么单调,金主要求,手串上的任意一种颜色(不包含无色),在任意连续的m个串珠里至多出现一次(注意这里手串是一个环形)。手串上的颜色一共有c种。现在按顺时针序告诉你n个串珠的手串...

2020-03-13 14:20:45 726

原创 字节跳动——用户喜好

1.为了不断优化推荐效果,今日头条每天要存储和处理海量数据。假设有这样一种场景:我们对用户按照它们的注册时间先后来标号,对于一类文章,每个用户都有不同的喜好值,我们会想知道某一段时间内注册的用户(标号相连的一批用户)中,有多少用户对这类文章喜好值为k。因为一些特殊的原因,不会出现一个查询的用户区间完全覆盖另一个查询的用户区间(不存在L1<=L2<=R2<=R1)。输入描述:输...

2020-03-12 21:15:29 625

原创 字节跳动——特征提取

[编程题]特征提取时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32M,其他语言64M 小明是一名算法工程师,同时也是一名铲屎官。某天,他突发奇想,想从猫咪的视频里挖掘一些猫咪的运动信息。为了提取运动信息,他需要从视频的每一帧提取“猫咪特征”。一个猫咪特征是一个两维的vector<x, y>。如果x_1=x_2 and y_1=y_2,那么这俩是同一个特征。...

2020-03-11 22:07:09 391

原创 剑指offer——孩子们的游戏(圆圈中最后剩下的数)

题目描述每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续0…m-1报数…这样下去…直到剩下最后一...

2020-02-26 21:54:23 121

原创 剑指offer——扑克牌顺子

题目描述LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张_)…他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子…LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q为12,K为13。上面的5张...

2020-02-26 20:56:01 76

耶鲁人脸数据集

本资源是耶鲁人脸数据集,本来下载的格式乱了,鄙人手动修改的

2019-04-03

上海交大ACM模板

此模板为上海交通大学ACM模板。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

2017-10-23

OpenGL配置文件及方法

本压缩包,包含了OpenGL的安装方法,及相应的文件

2017-08-23

ACM解题模板

本模板适用于C/C++ACMer,对于基本的题目类型归纳总结

2017-06-03

matlab综合编程

MATLAB5.X程序设计语言.pdf、 MATLAB5.X入门与提高.pdf、 MATLAB5手册.pdf、

2016-09-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除