Posts by Collection

computer-systems

java-concurrency-in-practice

第6章 任务执行

在线程中执行任务 当围绕“任务执行”设计应用程序结构时,第一步就是要找出清晰的任务边界。大多数服务应用程序都提供了一种自然的边界选择方式:以独立的客户请求为边界。

第7章 取消与关闭

Java没有提供任何机制来安全的终止线程,但它提供了中断(interruption)协调机制,能够使一个线程终止另外一个线程当前的工作。

第10章 避免活跃性危险

在安全性与活跃性之间通常存在着某种制衡。我们使用加锁机制来确保钱程安全,但如果过度地使用如锁,则可能导致顺序死锁( Lock-Ordering Deadlock )。同意,我们使用线程和信号量来限制对资源的使用,但这些被限制的行为可能会导致资源死锁(Resource Deadlock )。

redis

分布式锁

SETNX 和 EXPIRE 非原子性,解决:LUA 脚本 错误解除 A设置过期时间30s,A执行时间超过30s,会释放其他线程的锁,解决:UUID 标识当前线程 超时解锁导致并发, A设置过期时间30s,A执行时间超过30s,B也会并发执行 不可重入, 无法等待锁释放,轮询,PUBSUB...

缓存

缓存一致性、缓存击穿、缓存雪崩

字典

字典(dictionary), 又名映射(map)或关联数组(associative array), 是一种抽象数据结构, 由一集键值对(key-value pairs)组成, 各个键值对的键各不相同, 程序可以添加新的键值对到字典中, 或者基于键进行查找、更新或删除等操作。

跳跃表

跳跃表(skiplist)是一种随机化的数据, 由 William Pugh 在论文《Skip lists: a probabilistic alternative to balanced trees》中提出, 跳跃表以有序的方式在层次化的链表中保存元素, 效率和平衡树媲美 —— 查找、删除、添加等操作都可以在对...

整数集合

整数集合(intset)是集合键的底层实现之一: 当一个集合只包含整数值元素, 并且这个集合的元素数量不多时, Redis 就会使用整数集合作为集合键的底层实现。

压缩列表

压缩列表(ziplist)是列表键和哈希键的底层实现之一。当一个列表键只包含少量列表项,并且每个列表项要么就是小整数值,要么就是长度比较短的字符串,那么Redis就会使用压缩列表来做列表键的底层实现。

快速列表

quicklist.h - A generic doubly linked quicklist implementation

对象

Redis并没有直接使用这些数据结构来实现键值对数据库,而是基于这些数据结构创建了一个对象系统,这个系统包含字符串对象、列表对象、哈希对象、集合对象和有序集合对象这五种类型的对象

spring

概述

Spring可以做很多事情, 它为企业级开发提供给了丰富的功能,但是这些功能的底层都依赖于它的两个核心特性,也就是依赖注入( dependency injection,DI)和面向切面编程( aspect- oriented programming,AOP)

Spring核心技术

Spring 可以 做 很多 事情, 它为 企业 级 开发 提供 给了 丰富 的 功能, 但是 这些 功能 的 底层 都 依赖于 它的 两个 核心 特性, 也就是 依赖 注入( dependency injection, DI) 和 面向 切面 编程( aspect- oriented programming, ...

IoC容器

Spring IoC Container and Beans 是通过使用类的直接构造或诸如服务定位器模式之类的机制来控制其依赖项的实例化或位置的Bean本身的逆过程(因此称为Control Inversion).

AOP

Spring通过使用基于模式的方法或@AspectJ批注样式,提供了编写自定义方面的简单而强大的方法.

第1章 Spring之旅

Spring 可以 做 很多 事情, 它为 企业 级 开发 提供 给了 丰富 的 功能, 但是 这些 功能 的 底层 都 依赖于 它的 两个 核心 特性, 也就是 依赖 注入( dependency injection, DI) 和 面向 切面 编程( aspect- oriented programming, ...

spring-security

特性

Sping的安全框架,提供验证 (authentication), 授权 (authorization),防范通用的漏洞,集成其它类库以便简单使用。

概览

Spring Security对Servlet的支持基于Servlet的Filter

验证

Spring boot Security 架构组件和验证机制

授权

Spring Security中的高级授权功能代表了其受欢迎程度的最令人信服的原因之一

集成

Servlet Spring Security与Servlet API集成在一起 Servlet 2.5+ HttpServletRequest.getRemoteUser()将返回SecurityContextHolder.getContext().getAuthentication().getName()的结...