Cache Travel-02-history
IQiyi 的缓存发展之路
数据同步加 redis
通过消息队列进行数据同步至redis,然后Java应用直接去取缓存
优点
由于是使用的分布式缓存,所以数据更新快。
缺点
缺点也比较明显:依赖Redis的稳定性,一旦redis挂了,整个缓存系统不可用,造成缓存雪崩,所有请求打到 DB。
JavaMap 到 Guava cache
这个阶段使用进程内缓存作为一...
2018-09-01 04:24:42 |
Java
Cache Travel-01-Talk
概览
你真的需要缓存吗
如何选择合适的缓存
多级缓存
缓存更新
缓存挖坑三剑客
缓存污染
序列化
GC 调优
缓存的监控
是否需要
在使用缓存之前,需要确认你的项目是否真的需要缓存。
CPU 占用
如果你有某些应用需要消耗大量的 CPU 去计算,比如正则表达式;如果你使用正则表达式比较频繁,而它又占用了很多 CPU 的话,那你就应该使用缓存将正则表达式的结果给缓存下...
2018-09-01 04:24:42 |
Java
缓存实战(1)缓存雪崩、缓存击穿和缓存穿透入门简介及解决方案
缓存的注意点
我们前面花了很多篇幅讲解 redis 的实现原理,并且也自己手写实现了一些基础功能。
你在工作学习中肯定或多或少都接触过 redis 等缓存,本篇对缓存使用的注意点做一个入门介绍。
内容相对轻松简单,请放心食用。
缓存大大提升了我们的查询性能,但是使用不慎很可能掉到坑里。
本文介绍下缓存雪崩、缓存击穿和缓存穿透这三个挖坑的小能手,让你知道如何避免这几个坑,避免加班修B...
2018-09-01 04:24:42 |
Java
Cache Travel-00-index
缓存
缓存是提升性能非常重要的手段。
本系列就缓存做深入学习和整理。
缓存系列
基础数据结构
LRUMAP
HashMap
ConcurrentHashMap
成熟框架
Guava Cache
EhCache
MemCache
Redis 系列
Caffeine
LevelDB 系列
ali
感觉就是对各种常见框架的整合和增强。
提供了分布式的支持。
Je...
2018-09-01 04:24:42 |
Java
SQL MVCC
MVCC
MVCC是Multi Version Concurrency Control的简称,代表多版本并发控制。
为什么需要MVCC,还要从数据库事务的ACID特性说起。
相信很多朋友都了解ACID,它们分别代表了Atomicity(原子性), Consistency(一致性), Isolation(隔离性), Durability(持久性)。
各种数据库厂商会对各个隔离级别进行实...
2018-08-31 05:44:07 |
SQL
Java Static
java static
代码块
静态代码块:用 staitc 声明,jvm 加载类时执行,仅执行一次
构造代码块:类中直接用 {} 定义,每一次创建对象时执行。
执行顺序优先级:静态块, main(), 构造块, 构造方法。
静态代码块
代码
static{}
特性
它是随着类的加载而执行,只执行一次,并优先于主函数。
具体说,静态代码块是由类调用的。类调用时,先执行静...
2018-08-30 05:21:33 |
Java
SQLProxy
ProxySQL
ProxySQL is High-performance MySQL proxy with a GPL license.
特性
Query caching
忘记那些无法有效地反复访问相同结果而产生负载的应用程序。ProxySQL很快就加入了它的高级规则引擎。结果也可以缓存为一个可配置的timespan,以原生MySQL数据包格式。
Query Rou...
2018-08-30 02:59:31 |
SQL
SQL Isolation
数据库隔离性
概念
事务隔离级别是数据库事务处理的基础,ACID 中 I,即 Isolation,指的就是事务的隔离性。
隔离性是指,多个用户的并发事务访问同一个数据库时,一个用户的事务不应该被其他用户的事务干扰,多个并发事务之间要相互隔离。
sql 92 标准
sql 92 标准定义了 4 种隔离级别,读未提交、读已提交、可重复读、串行化,见下表。
ANSI SQL 隔离...
2018-08-30 01:22:17 |
SQL