加载中
将博客搬至CSDN

博客会统一搬迁到CSDN地址:https://blog.csdn.net/whynottrythis, 这里不在进行更新了

10/17 10:18
0
搭建 wordpress 博客

教育的首要目的,并不在于“知”而在于“行” 《软技能:代码之外的生存指南》中提到了,程序员要有自己的博客,逐步培养自己的影响力。作者推荐使用 wordpress 搭建自己的博客。现在网上可以...

GIT版本中REMOTE命令

我可能知道origin的意思了 Q 一直比较苦恼的问题: 每次创建版本库,都是clone去创建的。但有时候,文件夹我已经创建好了,就必须删除掉这个文件夹,然后重新执行clone。 引入了一个命令:r...

05/06 22:25
56
什么是跳表

Redis有序集内部有使用跳表的结构,说说我对跳表的理解: 大家都知道链表的数据结构,它的查询时间复杂度是O(n)。在计算机的世界里,O(n)的复杂度,基本上肯定会被喷的。而跳表的出现,就是为...

04/26 00:11
202
并发/频率控制

如何实现Go的并发控制,浏览了一下hystrix库的代码,看看别人是怎么实现的。 通过带有buffer的channel来实现的控制并发。因为channel的特性是,当buffer满了之后,程序会阻塞。设计上,分成2...

频率控制

在社交网站,常见的会有一些鼓励用户发帖的操作。比如,用户发帖超过100的话,送他50元的购物优惠券。部分的“黑产”用户,很可能会看上这部分利益,开始疯狂的灌水帖。 使用按键精灵便可以实...

04/24 00:06
37
XSS攻击

XSS全称是Cross Site Scripting,跨站脚本攻击。为什么不是CSS呢,想必大家也清楚了! 导致攻击的原因在于:浏览器在渲染页面时,会对服务端返回的数据进行解析。比如说,我们返回的文本中如...

04/22 23:56
35
快速排序

快速排序跟二叉树查找的思路很相似,它的实现原理其实挺简单的。如下是模拟实现的代码: 根据一个值,将数组拆分成左右两个部分,然后以此递归执行。 func quickSort(arr []int, pivotIndex...

04/15 00:25
84
标记清除GC

Go语言的GC操作叫“三色标记”,有一些动图GIF来标记这个过程。大概的过程很好理解: 起初所有的对象都是白色 扫描所有可达对象,将其标记为灰色 扫描灰色对象,将其引用对象标记为灰色,自身...

04/10 00:20
59
Redis 持久化存储

Redis持久化存储包括两种方式:AOF和RDB。AOF的全称是Append of file,RDB则是Redis Database。 RDB是Redis某一时刻的快照,Redis会单独fork一个线程来处理。相比较AOF 的方式,RDB生成的文件...

04/07 23:04
72
项目架构

大多数的程序员,都是做业务开发的,我也是。每天的工作都围绕着产品的需求。我们总在不停地写需求,在不停地堆砌代码,还在不停地解决Bug。后来,我们越来越陷入细节,越来越不能把握全局。...

Redis 集群

想到一句很搞笑的话:“为什么要用集群呢,单机不香吗?”。确实,为什么要选择集群呢?大概都是从两个角度来考量的: 提高系统的可用性,单点故障是任何系统的灾难。 提高系统的高性能,单台...

04/02 22:43
80
排序

go语言的排序通过接口来实现,接口的声明如下: type Interface interface { // Len is the number of elements in the collection. Len() int // Less reports whether the element with //...

读写接口

针对一些输入/输出的场景,一般可能会涉及到读/写操作。比如,对一段字符串进行gzip压缩,或者解压缩,golang下主要通过两个接口来实现: 读的接口声明如下: type Reader interface { Re...

03/31 23:48
85
内容压缩

在数据库中存储字符串的时候,为了节约空间,可以先使用gzip对内容压缩,然后再进行存储。gzip在浏览器的交互中比较常见,记得,之前在nginx的配置上,还专门开启过gzip的支持。 gzip的压缩效...

03/27 22:42
63
命令行请求

运营提供了一个用户列表,csv的文件格式,需要给这批用户发优惠券。而线上环境已经有现成的接口,只需要构造参数、请求接口就可以实现。 我习惯的做法是维护一个job目录,然后写一个执行脚本...

03/25 23:51
151
请求补偿

只要我们的业务逻辑包含网络交互,就必须考虑:如果请求失败了,该怎么处理? 正常的情况下,有两种处理方式: 当请求失败的时候,我们回退请求之前的修改。 当请求失败的时候,我们重试请求...

Go
03/24 22:41
65
AB策略

有时候,在上线新功能或页面改版时,我们很难拿捏准:新版功能是否优于老版。通常的做法,就是使用AB策略:针对不同的用户,展示差异的页面,提供不同的功能。电商网站的推荐功能,本质也是A...

03/22 23:22
303
事件通知

在zookeeper中,我们可以监控特定的znode节点。当节点发生变化时,便会给监控方发送事件通知。这有点类似于发布-订阅模式,拿Redis来说,当我们发布新消息时,Redis便会通知订阅者。 从设计模...

订单号提交

在电商业务中,商品的交付都是围绕订单号来进行的。交易的基础流程包括创建订单、支付订单、交付订单、签收订单。 基于订单,我们可以做很多事情。比如,建立一条交易的数据总线,定期核对商...

03/21 00:44
69

没有更多内容

加载失败,请刷新页面

返回顶部
顶部