置顶有趣的静态页面

这个页面用来分享日常遇见的一些有趣的项目,大多数项目仅仅包含一个html页面和少量的js引用

Java中的不可重入锁StampedLock

StampedLock 是 Java 8 引入的一种新的锁机制,旨在提供更高的并发性能,特别是在读多写少的场景中。它是 ReentrantReadWriteLock 的增强版,通过引入“戳记(Stamp)”概念,提供了更灵活的锁控制方式。 核心特点 三种模式 写锁(Write Lock)

java 

CopyOnWriteArrayList是如何实现线程安全的

CopyOnWriteArrayList 通过写时复制(Copy-On-Write)机制实现线程安全,具体方式如下: 写时复制机制 读操作:直接读取当前数组,无需加锁,因此多个线程可以并发读取; 写操作:每次修改时,先复制当

java 

Spring 框架中单例对象如何注入原型对象

单例对象在初始化时只会注入一次原型对象,后续即使原型对象本身是多例的,单例对象中持有的引用也不会更新。所以在单例对象中注入原型对象需要经过特殊处理。 @Lookup方法注入 通过定义一个抽象方法,Spring 会动态生成子类并覆盖该方法,每次调用时从容器中获取新的原型实例。 在单例 Bean 中定义

spring 

Memcached 的 slab reassign 机制

Memcached 的 slab reassign 机制 是一种物理上的内存转移。它允许将一个 slab 从一个 slab class 移动到另一个 slab class,从而优化内存使用。以下是详细说明: Slab Reassign 的过程 物理转移 slab reassig

Memcached内存模型

Memcached 的内存模型是其高效性能的核心之一。它使用了一种基于 slab 的内存分配机制,将内存划分为多个固定大小的块(slab),并通过 LRU(最近最少使用)算法管理内存。 Slab 分配机制 Memcached 使用 slab 分配器来管理内存,这是一种高效的内存分配方式,避免了频繁的

Memcached支持根据前缀获取键值对吗

Memcached 本身并不支持直接根据前缀获取键值对。Memcached 是一个简单的键值存储系统,设计目标是高效地通过明确的键来访问数据,而不支持复杂的查询操作(如按前缀搜索)。 Memcached不支持前缀搜索 设计目标

Redis的集群模式

主从复制模式 在主从复制模式下,Redis 的数据转移和客户端访问的行为如下: 数据转移行为 主节点(Master)会将数据同步到从节点(Slave),这是服务端自动完成的过程; 数据转移通过 Redis 的复制机制实现,主节点将写操作传

redis 

Memcached集群各节点间如何通信

Memcached 本身设计为一个简单的分布式内存缓存系统,其节点之间并不直接通信。每个 Memcached 节点都是独立的,它们不会相互协作或共享数据。 节点之间的通信 无节点间通信 Memcached 节点之间没有内置的通信机制。

一致性哈希的基本原理

一致性哈希是一种特殊的哈希算法,它将节点和数据都映射到一个环形哈希空间(通常是一个虚拟的环)。每个节点在环上占据一个位置,而每个数据的键通过哈希函数映射到环上的某个点。数据存储在顺时针方向最近的节点上。 当新增一个节点时,这个节点会被插入到环上的某个位置。此时,只有那些原本应该存储在新节点位置附近的

笔记