Redis 集群中内置了 16384 个哈希槽,当需要在 Redis 集群中放置一个 key-value时,redis 先对 key 使用 crc16 算法算出一个结果,然后...
Redis 集群中内置了 16384 个哈希槽,当需要在 Redis 集群中放置一个 key-value时,redis 先对 key 使用 crc16 算法算出一个结果,然后...
最初学习Java的时候,遇到多线程我们会知道synchronized,对于当时的我们来说synchronized是保证了多线程之间的同步,也成为了我们解决多线程情况的常用手段...
1 关于一致性 为加速系统性能一般都会引入缓存机制,比如 Redis。这种情况下当用户读数据时一般会按照如下流程: 关于读的流程大家是没有异议的,但是对于数据的更新呢,如何操...
MESI是一种广泛使用的写回策略的缓存一致性协议。 MESI协议中的状态 M:Modified被修改 E:Exclusive独享的 S:Shared共享的 I:Invalid...
Nginx负载均衡 轮询、轮询是默认的,每一个请求按顺序逐一分配到不同的后端服务器,如果后端服务器down掉了,则能自动剔除 ip_hash、个请求按访问IP的hash结果分...
内存屏障(Memory barrier) 为什么会有内存屏障 每个CPU都会有自己的缓存(有的甚至L1,L2,L3),缓存的目的就是为了提高性能,避免每次都要向内存取。但是这...
Synchronized: (1)jdk1.2之前synchronized 加锁是直接向操作系统直接申请锁,所以我们称为重量级锁。 1.2之后synchronized做了优化...
CMS收集器 1. CMS(Concurrent Mark Sweep)收集器是一种获取最短回收停顿时间为目标的收集器 2. CMS收集器是一种基于"标记-清除"算法实现的收...
限流是什么 通过某种手段对某个时间段的并发访问请求进行流量限制,一旦流量达到限制阈值则可以拒绝服务,排队或等待,目的是防止系统因大流量或突发流量导致服务不可用或崩溃,是一种确...
CPU缓存 CPU缓存的出现主要是为了解决CPU运算速度与内存读写速度不匹配的矛盾,因为CPU运算速度要比内存读写速度快得多,举个例子: 一次主内存的访问通常在几十到几百个时...
volatile作用: 1.保持线程可见:某个线程每次使用volatile修饰的变量的时候都要去主内存读这个变量到线程内存中; 2.禁止指令重排序:cpu在没有前后因果关系的...
Synchronized: (1)jdk1.2之前synchronized 加锁是直接向操作系统直接申请锁,所以我们称为重量级锁。 1.2之后synchronized...
JOL全称为Java Object Layout,是分析JVM中对象布局的工具,该工具大量使用了Unsafe、JVMTI来解码布局情况,所以分析结果是比较精准的,接下来我们就...
1. 分布式限流 Redis + Lua : Redis进行每秒请求计数(Redis计数器功能),达到限流目的。其中,Redis key的设置精确到秒,并且需要对该key设置...