![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
wowowo_
这个作者很懒,什么都没留下…
展开
-
redis学习笔记:缓存雪崩、击穿、穿透
1.缓存雪崩同一时间缓存大面积失效,那一瞬间redis相当于没有,比如这个时候有5000个请求过来,本来redis可以抗住4000个请求,但是这个时候缓存失效了,相当于5000个请求直接落实在数据库中。这个时候数据库可能会被当前流量给卡死,宕机了。重启也有可能会被新的流量给卡死。2.如何解决缓存雪崩redis批量存储的时候把每个key的失效时间加上一个随机值。保证不会在容易时间大面积的失效...原创 2020-03-10 22:22:00 · 115 阅读 · 0 评论 -
redis学习笔记:基础
1.nosql有哪些,各自的优点Memcached:多核操作,单实例QPS极高,但只支持key-value结构存储,无法持久化,不能备份,不能同步,仅内存操作。MongDb:文档型数据库,存放xml,json。可以同步,持久化。redis:支持多种数据结构,如 string(字符串)、 list(双向链表)、dict(hash表)、set(集合)、zset(排序set)、hyperl...原创 2020-03-09 20:39:50 · 123 阅读 · 0 评论 -
Vector学习笔记:同步容器,并发容器
java中同步容器主要分为2类:Vector,Stack(其实是继承Vector,底层是数组实现的),HashTableCollections类中提供的静态工厂方法创建的类1.为什么Vector是线程安全的?源码所有的方法都加了synchronized。所以在多线程场景下可以单独使用。但是无法在复合操作的时候保证线程安全,需要主动添加锁。public void delete( Vec...原创 2020-03-08 22:27:07 · 412 阅读 · 0 评论 -
ArrayList学习笔记
1.ArrayListArrayList底层是数组实现的存储,与它类似的是LinkedList,两者间的区别:ArrayList:查找与访问元素的速度快,但是新增、删除的速度慢。LinkedList:新增、删除的速度快,查找的速度慢。2.ArrayList为什么是线程不安全的还使用?平时的场景中,基本都是用来查询的,不会设计太频繁的新增和删除如果设计到新增和删除可以使用Linke...原创 2020-03-08 20:07:32 · 109 阅读 · 0 评论 -
HashMap学习笔记:HashTable&ConcurrentHashMap
1.为什么hashmap中链表大小超过8个会自动转化为红黑树,当删除小于6个会重新转换为链表?根据泊松分布:是一种统计与概率学里常见到的离散概率分布。在负载因子默认为75%时,单个hash槽内元素个数为8的概率小于百万分之一,所以7时个分水岭,等于7时不转换,大于7时转换,小于7时转换为链表。2.hashma在多线程环境下是不安全的,如何处理这种情况?Collections.sysnchr...原创 2020-03-07 23:55:50 · 113 阅读 · 0 评论 -
HashMap学习笔记:原理
1.hashmap的结构和底层原理?数组+链表:即在每一个数组里面存放了 key - value 的实例。本身所有位置都是为null,再put插入的时候会根据key的hash值去计算一个数组的index坐标位置2.为什么需要链表,链表是怎么样的?数组的长度是有限的,再有限的长度内使用hash,会存在一定的相同概率,就形成了链表。3.新得Entry节点是怎么插入链表中的?jdk...原创 2020-03-07 13:20:20 · 149 阅读 · 0 评论