golang版防缓存击穿利器--singleflight

golang版防缓存击穿利器--singleflight

背景先来了解一下缓存问题的几种场景,以redis为例缓存穿透缓存穿透,是指查询一个数据库一定不存在的数据。正常的使用缓存流程大致是,数据查询先进行缓存查询,如果key不存在或者key已经过期,再对数据库进行查询,并把查询到的对象,放进缓存。如果数据库查询对象为空,则不放进缓存。代码流程1.参数传入对象主键ID2.根据key从缓存中获取对象3.如果对象不为空,直接返回4.如果对象为空,进行数据库查询5.如果从数据库查询出的对象不为空,则放入缓存(设定过期时间)想象一下这个情况,如果传入的参数为-1,会是怎么样?这个-1,就是一定不存在的对象。就会每次都去查询数据库,而每次查询都是空,每次又...

后端开发 2019-08-19 PM 21℃ 0条
淘集集的增长套路

淘集集的增长套路

2018年11月20日,拼多多刚刚发布了第三季度的财报,财报显示,拼多多第三季度净营收为人民币 33.724 亿元(约合 4.910 亿美元),较去年同期增长 697%。数据一出,吸引了不少人的关注,拼多多上市时,大家一片唱衰,今天成绩似乎证明了,无论对于用户还是投资人,拼多多的社交电商模式都有其市场空间和价值。不过,惊人的可不止这些,淘集集CEO张正平喊话之余创造了另一奇迹:60天获取1000万用户,砍价比拼多多更狠。如此惊人速度,人们不禁感慨,这位高管,此结果你是如何盘来的。最近,三节课内部就发现一款名为淘集集的社交电商类产品,他的增长方式与玩法,比拼多多还要野,八月刚刚上线,现在月...

用户增长 2019-08-19 PM 10℃ 0条
通俗易懂网络协议(TCP/IP)

通俗易懂网络协议(TCP/IP)

梳理一下之前做过的有关网络编程的项目,正好复习一下tcp/ip协议相关的基础,转自网上,新鸟入门,老鸟就当复习。网络编程常用的套路问题:比如:1)TCP是面向连接的、可靠传输,而UDP是非连接的、不可靠传输,TCP建连需要3次握手,会造成delay,UDP更快。2)socket编程,服务器socket create、bind、listen、accept、read/write、shutdown/close,客户端socket create、connect、read/write、shutdown/close,再加上epoll/select这几下子。再比如:我知道网络编程要忽视SIGPIPE信...

后端开发 2019-08-17 PM 33℃ 0条
GO语言中的三个点

GO语言中的三个点

一般JAVA中三个点,用于函数有多个不定参数的情况,但是GO中不只这一个玩法,还可以把数组或切片打散了去 append来看下面两个例子func test1(args ...string) { //可以接受任意个string参数 for _, v:= range args{ fmt.Println(v) } } func main(){ var strss= []string{ "qwr", "234", "yui", "c...

后端开发 2019-08-16 PM 38℃ 0条
解决Docker假死问题(stop或kill不掉容器)

解决Docker假死问题(stop或kill不掉容器)

系统版本:LSB Version: core-9.20160110ubuntu0.2-amd64:core-9.20160110ubuntu0.2-noarch:security-9.20160110ubuntu0.2-amd64:security-9.20160110ubuntu0.2-noarch Distributor ID: Ubuntu Description: Ubuntu 16.04.4 LTS Release: 16.04 Codename: xenialdocker 版本:Docker version 18.05.0-ce, build f...

运维 2019-08-16 PM 20℃ 0条