摘要:
/** * twitter 的分布式环境全局唯一id算法 */ public class IdGenerateUtil { private long workerId; private long datacenterId; private long sequence = 0L; private lo 阅读全文
摘要:
##一、一般情况 jar包在linux的目录为/jarmanager/xxx.jar 使用在/jarmanager目录下使用 java -jar xxx.jar 命令可以直接运行该jar包的项目,运行成功之后使用crtl+c或者直接关闭连接窗口,可以让项目停止运行; ##二、存在需求 关闭连接窗口, 阅读全文
摘要:
##JVM 的职责 负责去加载,并且把加载的数据拿到内存里面,并且去分配内存 ##为什么要优化 JVM 因为在某些时候,我们发现代码完全没问题,只是 JVM 的瓶颈影响代码的性能,就必须优化它 java 跨平台原理 一次编译,处处运行 只要有虚拟机和字节码,就可以 ##类加载机制 加载、连接、初始化 阅读全文
摘要:
在实体类中,将子文档的类型改成 Object 即可 阅读全文
摘要:
volatile 关键字 一、说说你对 volatile 关键字的理解 被 volatile 修饰的共享变量,就具有了以下两点特性: 保证了不同线程对该变量操作的内存可见性; 禁止指令重排序 二、内存可见性 和 禁止重排序分别怎么实现的? 当一个变量被 volatile 修饰时,那么对它的修改会立刻 阅读全文
摘要:
一、synchonized关键字原理 加了这条就可以正常按顺序执行,是因为println方法里面加了锁,lock会清空工作内存的变量信息,下次运行的时候让它去主内存中找最新的值 1. synchronized 和 Lock 的区别 2. 锁升级的过程 首先,monitor如果变成重量级锁,其实调用内 阅读全文
摘要:
一、why 每当微博爆出大瓜或者是双十一零点的时候,用户请求量是会突然变得超级大的,如果单纯使用 MySQL 来执行一些语句,服务器容易挂掉。因此,不妨使用一种缓存技术,让这些数据去 redis 而不是直接到 MySQL。并且 redis 是缓存到内存中的,能支持超过 10W 次每秒的读写频率。 二 阅读全文
摘要:
##两个主要的区别 Memcached 支持字符串和整数,简单操作的话两者差不多,但是后续项目做大做强,缓存需要能够支持更复杂的结构和操作,这时应该选redis Memcached 没有原生的集群模式,需要依赖客户端来实现往集群中分片写入数据,而 redis 原生就支持 claster 模式的 阅读全文
摘要:
##一、redis 中 key 设计原则 唯一、可读、灵活、失效 唯一,比如注册验证码,需要加上 register_verify_code 作为唯一标识 可读,见名知意 灵活,比如攻略文章点赞的设计,可以带上用户id,攻略文章id,strategy_thumbsupnum_vo:uid:sid 失效 阅读全文
摘要:
##一、需求 项目业务在做一个攻略排行,要求每隔一段时间,更新排行榜 ##二、分析方案 redis缓存,先执行一次查询,然后缓存在redis中,下一次查询直接查询redis 缺点:占用内存,数据不实时,可能会出现缓存策略失效,接着把请求传到 mysql 中,这样请求也会变慢 分时统计表(大表转小表) 阅读全文