获得徽章 1
#青训营笔记创作活动#
2月16日 打卡day36
可以对nil的slice添加元素,但不可以nil的map添加元素,需要make。
检查map是否有对应的元素,检查返回的第二个值,为空时第一个返回值是类型的零值。
string无法修改,[] byte可以修改。
switch每个分支都有break,如果不想break的话加上fallthrough。
http的响应体用defer关闭,主动关闭连接可以节约socket资源。
go中默认讲json数值当真float64处理。
使用recover可以从panic中恢复。
range map可能是无序的。
go的闭包,循环时会错误引用同一个变量。
使用ctx避免goroutine泄露。
for中配合select使用时不能跳出循环。
展开
评论
#青训营笔记创作活动#
2月15日 打卡day36
redis限流,固定窗口存在窗口临界问题。滑动窗口可以解决。令牌桶平相比于漏桶,可以支持突发流量请求。
redis实现延时队列,通过监听来触发自定义事件,但是存在着redis并不保证按时发送的问题。
使用zset排序出任务时间,然后轮训触发。
通过保存请求的token,可以保证幂等性。
展开
评论
#青训营笔记创作活动#
2月14日 打卡day35
hertz的jwt中间件将认证与颁发token同时完成,,更加简便。
同时还可以自定义返回的响应。
通过路由中间件,就可以对header里面的jwt进行校验,并拦截非法的请求。
hz可以自动生成通信实体。
展开
评论
#青训营笔记创作活动#
2月13日 打卡day33
innodb每次io读取16kB数据。
b+树的好处:相比二叉树可以自动平衡减少层数,相比红黑书节点可以保存多个数据,相比b树最底层有指针相连接方便范围查询。mysql的指针是双向的。
非聚簇索引保存的是id需要进行一次回表,但是如果包含了查询信息就不用。
展开
评论
#青训营笔记创作活动#
2月12日 打卡day32
使用show variables查看系统变量
show grant查看权限
show error查看错误信息
使用alter命令对数据表进行修改
analyze分析表
check检查表
group by分组
group_concat聚合搜索结果
join驱动表
流程控制函数 if ifnull nullif switch
tinyint 128~127
四个隔离级别
展开
评论
#青训营笔记创作活动#
2月11日 打卡day30
单体服务时,使用本地锁就可以解决并发的问题,但是当有多个服务时,就需要分布式锁来进行控制。
redis分布式锁使用setnx来抢占,为了防止程序出错导致的死锁问题,需要对锁加上过期时间。
redission可以进行锁续期,redlock用于解决redis集群下锁的竞争
展开
评论
#青训营笔记创作活动#
2月9日 打卡day29
流程引擎用于状态机这样的场景。目前有三个主流的产品
流程图中主要包含四方面的内容:事件连线任务网关

可以使用flowable-ui进行流程图的创建。
这类的流程引擎可以便捷的开发需要流程管理的应用。
展开
评论
#青训营笔记创作活动#
2月8日打卡day27
当单库连接有限或者单表数据量过大时,会导致数据库性能急剧下降(当B+数超过三层)。
MongoDB可以存储非关系型数据,但是稳定性不强,不支持事务。
垂直分库,将不同的数据表分开存放在不同的数据库中。
垂直分表,将数据表不同的字段分开,减少内存的占用。
水平分库,将同一张表存到不同数据库。
水平分表,将同一张表拆分成多张。
展开
评论
#青训营笔记创作活动#
2月07日 打卡day24
读多写少的场景适合缓存
缓存:本地 redis
redis的序列化方式分为jdk和json格式,jdk不方便查看。
redis连结池使用了工厂模式。Jedis是线程不安全的。
先存缓存或者先存数据库都可能因为第二步失败,导致不一致,同时由于时序还存在并发问题,加锁解决。
先删缓存再删数据库,在读写并发下时序问题,数据库还没有更新的被取出放入缓存。
先删数据库再删缓存,第二步失败不一致,并发存在时序问题。
延迟双删
展开
评论
#青训营笔记创作活动#
2月6日 打卡day24
针对瞬时高并发,可以通过静态页面来优化响应速率。针对读多写少,可以应用缓存,通过预热来防止缓存击穿,通过布隆过滤器防止缓存穿透。在减去库存时要注意超卖,可以用lua脚本保证原子性。
使用自旋锁可以避免请求只竞争一次就失败。使用消息队列可以将购买和付款异步分开。
展开
评论
#青训营笔记创作活动#
2月05日 打卡day23
tls1.2是在三次握手之后进行四次tls握手。
tls四次握手是非对称,之后的通信是对称加密。
ca的公钥和私钥是用来对服务器公钥进行计算,防止被黑客破解。
展开
评论
#青训营笔记创作活动#
2月3日 打卡day22
redis的bitmap常用于统计日常活跃用户等。
redis的内存优化
1 尽量使用hash
2 考虑使用bitmap
3 使用共享对象池
4 合理进行gc
缓存穿透 缓存击穿 缓存血崩
redis服务降级,返回空?
redis数据一致:延迟双删,直接操作缓存,定时写入数据库

展开
评论
#青训营笔记创作活动#
1月20日 打卡day8
HTTPS会对请求URL和body都加密。HTTPS通过非对称加密握手,然后通过对称加密通信。可以使用wireshark和sslkey进行抓包和解析。
评论
下一页
个人成就
文章被阅读 56
掘力值 10
收藏集
1
关注标签
12
加入于