一介布衣
2018-02-20
channel Channel是Go中的一个核心类型,你可以把它看成一个管道,通过它并发核心单元就可以发送或者接收数据进行通讯(communication)。
它的操作符是箭头 <-
ch <- v // 发送值v到Channel ch中
v := <-ch // 从Channel ch中接收数据,并将数据赋值给v
(箭头的指向就是数据的流向)
就像 map 和 slice 数据类型一样, channel必须先创建再使用:
ch := make(chan int)
类型 Channel类型的定义格式如下:
ChannelType = ( "chan" | "ch
一介布衣
2018-02-19
什么是redis雪崩 redis 缓存在同一时间失效,导致请求直接从物理数据库中读取数据,而针对一些热门并发数据,
如果在同一时间缓存全部失效,导致并发过来,物理数据库承担不住大并发请求而导致系统崩溃,就是redis雪崩.
什么情景下会出现这种情况 比如微博热搜,app首页数据已经电商秒杀活动商品等等.....
而这些数据一般情况下是定时任务来创建redis缓存;
比如定时任务执行一次,把热门数据缓存起来,并且设置统一生效时间2小时;
而2小时后,正好面临一场秒杀活动;
我们试想一下,
2小时后的缓存全部失效,这时突然一个高并发请求进来,本来redis能抵抗80%并发请求,结果因为全部失效导