04 2020 档案
摘要:总介:缓存穿透(查不到)、缓存击穿(量太大,缓存过期)、缓存雪崩 1.缓存穿透 缓存穿透的概念很简单,用户想要查询一个数据,发现redis内存数据库没有,也就是缓存没有命中,于是向持久层数据库查询。发现也没有,于是本次查询失败。当用户很多的时候,缓存都没有命中(秒杀!),于是都去请求了持久层数据库。
阅读全文
摘要:概述: 主从切换的方式是:当主服务器宕机后,需要手动把一台从服务器切换为主服务器,这就需要人工干预,费时费力,还会造成一段时间内服务不可用。这不是一种推荐的方式,更多时候,我们优先考虑哨兵模式。Redis从2.8开始正式提供了Sentinel(哨兵) 架构来解决这个问题。 谋朝篡位的自动版,能够后台
阅读全文
摘要:Redis是内存数据库,如果不将内存中的数据库状态保存到磁盘,那么一旦服务器进程退出,服务器中的数据库状态也会消失,所以Redis提供了持久化功能! RDB(Redis DataBase) 在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读
阅读全文
摘要:主从复制 指的是将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master/leader),后者称为从节点(slave/follower),数据的复制是单向的,只能有主节点到从节点。master以写为主,Slave以读为主。 *默认情况下,每台redis服务器都是主节点
阅读全文
摘要:redis有两大类过期策略 (1)定期删除:redis每隔100ms随机抽取设置过期的key,检查key是否过期,若过期就删掉; (2)惰性删除:使用定期删除由于其随机性,会造成部分过期值没有及时清理,所以需要有另一中机制来弥补,那么就出现了惰性删除机制,惰性删除机制就是在get这个key值的时候,
阅读全文
摘要:Redis的事务: (1)开启事务:multi (2)命令入队:…… (3)执行事务:Exec (4)放弃事务:DISCARD,队列中命令都不会执行 Redis的事务本质: (1)是一组命令的集合,一个事务中所有的命令都会被序列化,执行的时候按照顺序执行; (2)redis事务具有一次性、顺序性、排
阅读全文
摘要:Redis常见存储类型: 1.String类型,最常用的类型,通过key值存储字符串类型的value值,适用于存储字符串、JSON串等; 2.list类型,遵循存储的有序性,适用于使用队列、栈、阻塞队列等场景; 3.Hash类型,存储key-map类型,适用于存储经常变更的信息,适合存储对象集合,比
阅读全文
摘要:1.Redis是基于单线程的,Redis效率比较高,由于Redis是基于内存操作,所以CPU不是性能瓶颈,机器的内存和宽带才是Redis的瓶颈。2.为什么Redis为单线程还那么快? (1)多线程涉及到cpu之间的切换,CPU的切换会造成资源的浪费,所以多线程并没有单线程快; (2)存储空间操作效率
阅读全文
摘要:在spring中可通过使用注解@Transcation( propagation = "传播机制")实现事务的传播,Spring中有7种传播机制 1.默认传播:PROPAGATION_REQUIRED 支持当前的事务,如果当前没有事务,就新建事务; 如果当前已有事务,则合并为一个事务。 解释:如果有
阅读全文
摘要:1.JMM是什么? JMM内存模型是一个抽象的概念,也是一种规范,目得是解决由于多线程通过共享内存进行通信时,存在的本地内存数据不一致、编译器会对代码指令重排序、处理器会对代码乱序执行等带来的问题。 2.JMM的作用? 在多线程的环境下,每个线程都已一个工作内存,同时还有一个主内存,主内存是线程共享
阅读全文
摘要:总介:Spring是一个轻量级的控制反转(IOC)和面向切面编程(AOP)的框架 1.Spring优点: spring是一个开源的免费框架; spring是一个轻量级的、非入侵式的框架; 提供了控制反转(IOC)、面向切面编程(AOP) 支持事务的处理、对框架整合的支持 2.IOC创建对象的方式 (
阅读全文
摘要:Linux目录结构 1.目录切换命令 cd usr 切换到该目录下usr目录 cd ../ 切换到上一层目录 cd / 切换到系统根目录 cd ~ 切换到用户主目录 cd - 切换到上一个所在目录 2.目录的操作命令(增删改查) (1)增加目录操作 命令:mkdir 目录名称 示例:在根目录 / 下
阅读全文
摘要:冒泡排序 比较两个相邻的元素,将值大的元素交换到右边 实现代码: /** * 冒泡排序 * @param array */ public static void bubbleSort(int[] array){ for(int i=0;i<array.length-1;i++){ //比较后的就不在
阅读全文
摘要:事务要解决的是数据库的并发问题,一般数据库会出现以下几种并发问题: 脏读 :对于俩个事务T1、T2,T1读取了已经被T2更新但还没有被提交的字段,之后,若T2回滚,T1读取的内容就是临时且无效的。 不可重复读 :对于俩个事务T1、T2,T1读取了一个字段,然后T2更新了该字段,之后,T1再次读取同一
阅读全文
摘要:IO的处理过程: 该模式下每个请求都会创建一个线程,有点事稳定,适合连接数目小且固定架构。缺点是对性能开销大,不适合高并发场景。 为解决这一问题JAVA在1.4之后增加了NIO,该模式基于多路复用选择器监测连接状态再通知线程处理,从而达到非阻塞的目的,比传统的BIO能更好的支持并发性能。 同步阻塞I
阅读全文
摘要:ThreadLocal 为每个使用该变量的线程提供独立的变量副本,所以每一个线程都可以独立地改变自己的副本,而不会影响其它线程所对应的副本。 ThreadLocal 的经典使用场景是数据库连接和 session 管理等。
阅读全文
摘要:HashTable 底层数组+链表实现,无论可以还是value都不能为null,线程安全,实现线程安全的方式是在修改数据时锁住整个HashTable,效率低,ConcurrentHashMap做了相关优化 ConcurrentHashMap 底层采用分段的数组+链表实现,线程安全 通过把整个Map分
阅读全文

浙公网安备 33010602011771号