获得徽章 1
- #青训营笔记创作活动# 1月30 day13
哪些场景不适合建立索引?
数据量少的表,不适合加索引
更新比较频繁的也不适合加索引
区分度低的字段不适合加索引(如性别)
where、group by、order by等后面没有使用到的字段,不需要建立索引
已经有冗余的索引的情况(比如已经有a,b的联合索引,不需要再单独建立a索引)展开评论1 - #青训营笔记创作活动# day11 1月26日
1.TCP 是面向连接的。(就好像打电话一样,通话前需要先拨号建立连接,通话结束后要挂机释放连接);
2.每一条 TCP 连接只能有两个端点,每一条 TCP 连接只能是点对点的(一对一);
3.TCP 提供可靠交付的服务。通过 TCP 连接传送的数据,无差错、不丢失、不重复、并且按序到达;
4.TCP 提供全双工通信。TCP 允许通信双方的应用进程
在任何时候都能发送数据。TCP 连接的两端都设有发送
缓存和接收缓存,用来临时存放双方通信的数据;
5.面向字节流。TCP 中的“流”(Stream)指的是流入进程或从进程流出的字节序列。“面向字节流”的含义是:虽然应用程序和 TCP 的交互是一次一个数据块(大小不等),但 TCP 把应用程序交下来的数据仅仅看成是一连串的无结构的字节流。展开评论1 - #青训营笔记创作活动# 1月14号 redis的数据一致性问题:方式1:先更新数据库,再更新缓存
这种是常规的做法,但是如果更新缓存失败,将会导致缓存是旧数据,数据库是新数据
方式2:先删除缓存,再写入数据库,这种方式能够解决方式1的问题,但是仅限于低并发的场景,不然如果有新的请求在删完缓存之后,写数据库之前进来,那么缓存就会马上更新数据库更新之前数据,造成数据不一致的问题
方式3:延时双删策略,这种方式是先删除缓存,然后更新数据库,最后延迟个几百毫秒再删除缓存
方式4:直接操作缓存,定期写入数据库展开评论1 - #青训营笔记创作活动# 1月15日 day2 idea功能强大,插件丰富,学到好多,发现居然还能继承接口测试插件,以后都不用postman、apipost这类接口测试软件了。直接idea全部搞定,还有第一个快捷键提示插件,感觉也还可以。有机会去试试
评论1 - #青训营笔记创作活动# 8月16日 day3
redis适合用的场景:
缓存会话
Redis 缓存会话比其他存储的优势在于:Redis 提供持久化。
排行榜、计数器:
Redis 在内存中对数字进行递增或递减的操作实现的非常好。集合和有序集合也使得我们在执行这些操作的时候变的非常简单,Redis 只是正好提供了这两种数据结构。展开评论1 - #青训营笔记创作活动# 1月17日 day4
怎么设计一个高并发系统?
1、横行扩展,分而治之。
2、微服务拆分,把一个个服务都拆分开
3、分库分表
4、池化技术
5、缓存
6、消息队列
7、主从分离
8、es
9、降级熔断
10、限流
12、异步处理,比如下单成功先h返回成功,后面订单表,支付表,帐户这些后面再搞,可以分开进行。不是同步的。一般放消息队列可以做到
展开评论1 - #青训营笔记创作活动# 1月18日 day5
关于校验,可以建立一个公共模块,所有的微服务都依赖这个公共模块,这个公共模块中定义了一个拦截器,会拦截下来每一个请求,从请求头中取出用户 ID,然后从 Redis 中拿到具体的用户信息,存入到 ThreadLocal 中,这样在后续的方法调用中,如果需要判断用户是否具备某一个权限,就可以通过 ThreadLocal 去获取展开评论1 - #青训营笔记创作活动# 1月19日 day5
缓存雪崩 如何避免?
1:在缓存失效后,通过加锁或者队列来控制读数据库写缓存的线程数量。比如对某个key只允许一个线程查询数据和写缓存,其他线程等待。 2:做二级缓存,A1为原始缓存,A2为拷贝缓存,A1失效时,可以访问A2,A1缓存失效时间设置为短期,A2设置为长期 3:不同的key,设置不同的过期时间,让缓存失效的时间点尽量均匀展开评论1 - #青训营笔记创作活动# 1月20日 day6
怎么利用Redis实现数据的去重?
Redis的set:它可以去除重复元素,也可以快速判断某一个元素是否存在于集合中,如果元素很多(比如上亿的计数),消占用内存很大
Redis的bit:它可以用来实现比set内存高度压缩的计数,它通过一个bit设置为1或者0,表示存储某个元素是否存在信息。例如网站唯一访客计数,可以把user_id作为 bit 的偏移量 offset,如设置为1表示有访问,使用1 MB的空间就可以存放800多万用户的一天访问计数情况。
HyperLogLog:实现超大数据量精确的唯一计数都是比较困难的,HyperLogLog可以仅仅使用 12 k左右的内存,实现上亿的唯一计数,而且误差控制在百分之一左右。
bloomfilter布隆过滤器:布隆过滤器是一种占用空间很小的数据结构,它由一个很长的二进制向量和一组Hash映射函数组成,它用于检索一个元素是否在一个集合中展开评论1