REDIS缓存穿透,缓存击穿,缓存雪崩原因+解决方案 缓存穿透:程序绕过缓存,不停的查询数据库 key对应的数据在数据源并不存在,每次针对此key的请求从缓存获取不到,请求都会到数据源,从而可能压垮数据源。比如用一个不存在的用户id获取用户信息,不论缓存还是数据库都没有,若黑客利用此漏洞进行攻击可能压垮数据库。 举例子:查询id=-1 这条数据库不 More
订单过期30分钟,不支付自动取消方案 1. 扫描数据库 最简单,粗暴的办法。开个任务,每3分钟扫描一次数据库 select orderid from table where .... 服务器开启crontab 定时扫描 优点:容易实现,支持集群服务 缺点: 1. 服务器消耗大 2. 存在延迟,并不是精确的3分钟 3. 如果订单量很大,比如1000万条没有付款,数据库压力很大 2. JDK延迟 More
1 什么是JVM 1.1 定义: JVM:Java Virtual Machine 直接翻译java虚拟机,就是java虚拟了一个机器,安装在你的电脑上,java跨平台属性全靠JVM Java Runtime Environment (JRE) is the implementation of the Java Virtual Machine (JVM). JVM analyze the bytecode, interprets it, and execute the same bytecode to display the output. JRE是一个JVM的 More
寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制. 栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放在常量池中。) 堆:存放所有new出来的对象。 静态域:存放静态成员(static定义的) 常量池:存放字符串常量和基本类型常量(public More
Java中对象和对象引用的区别,引用、指向是什么意思 new Person(); //一个对象 Person p1 = new Person();//p1 是一个对象的引用 P1指向那个对象new Person() Java的变量分为两大类:基本数据类型和引用数据类型。 其中基本类型变量有四类8种:byte short int long float double char boolean,除了8种基本数据类型变量,其他变量都是引用数据类型,如类、接口 More
栈内存 堆内存 基础类型,对象引用(堆内存地址) 由new创建的对象和数组 存取速度快 相对于栈内存较慢 数据大小声明周期必须确定 分配的内存由java虚拟机自动垃圾回收器管理。动态分配内存大小 共享特性栈中如果有字符串,则直接引用 如果没有,开辟新的空间存入值 每new一次在堆内存中生成一个新的对象。 创建之后值可 More
小的时候,只有一台服务器,把程序,文件,数据库丢在一起 2. 流量变大了,买了三台服务器,把程序,文件,数据库分开 3. 为了加速,开始加入缓存服务器组,redis,memcached 等 4. 流量进一步增加,开始用负载均衡,把应用服务器,改为一组,使用LVS,NGINX减少单机应用压力 5. 数据库进行读写分离,主库负责写,多台从库负责 More
brew 的安装采用中科大的源/usr/bin/ruby -e "$(curl -fsSL https://cdn.jsdelivr.net/gh/ineo6/homebrew-install/install)" https://www.cnblogs.com/joyce33/p/13376752.htmlbrew install stunnel 本文讲述了如果建立一个本地代理,给android studio软件来用。前提为你有一个可以科学上网的账户和密码 brew install stunnel stunnel.conf clie More
如何做好技术总监 一、作为技术管理人员的非技术要求非技术管理:沟通协调,需求传达 1.1 和上级的沟通和管理公司战略传递:如何向团队传达公司的大战略,大方向。如果不能理解公司的战略,那么就无法配合公司领导,完成业务目标,技术目标都是为业务目标服务的 1.2 和平级的沟通和管理如何配合业务部门开展工作,业务部门说,因为我们要做电商数据分析 More
月小升最近把安静的工作时间,调整为45分钟,苦于一时没有找到mac电脑上合适的闹钟,就用java整了一个 姑且用着,打包成time.jar 算法说明: 过了45分钟,响起音乐 使用办法: java -jar time.jar 源代码: package com.javaer.time; import java.io.InputStream; import java.net.URL; import sun.audio.AudioPlayer; import sun.audio.AudioStr More