分布式对象
深入理解Redisson分布式对象的实现,掌握分布式集合、Map、List、Set等数据结构,理解分布式计数器、布隆过滤器等分布式对象的实现原理。
📋 分布式对象概览
Redisson提供了丰富的分布式对象,这些对象在分布式环境下可以安全地使用。
🎯 一、分布式集合
1.1 RSet
RSet是分布式Set的实现:
java
public interface RSet<V> extends Set<V>, RExpirable, RSetAsync<V> {
boolean remove(Object value);
boolean contains(Object o);
Iterator<V> iterator();
}实现原理:
- 使用Redis的Set数据结构
- 支持集合运算(交集、并集、差集)
- 支持分布式操作
1.2 RList
RList是分布式List的实现:
java
public interface RList<V> extends List<V>, RExpirable, RListAsync<V> {
boolean add(V value);
V get(int index);
boolean remove(Object value);
}实现原理:
- 使用Redis的List数据结构
- 支持索引访问
- 支持双向操作(左推、右推)
🎯 二、分布式Map
2.1 RMap
RMap是分布式Map的实现:
java
public interface RMap<K, V> extends Map<K, V>, RExpirable, RMapAsync<K, V> {
V put(K key, V value);
V get(Object key);
boolean containsKey(Object key);
}2.2 本地缓存
RMapCache支持本地缓存,提高读取性能:
java
public interface RMapCache<K, V> extends RMap<K, V> {
boolean fastPutIfAbsent(K key, V value, long ttl, TimeUnit unit);
V getWithTTLOnly(K key);
}本地缓存实现:
- 本地缓存热点数据
- 自动失效
- 支持TTL
2.3 写入模式
Redisson支持多种写入模式:
- WRITE_THROUGH:同步写入
- WRITE_BEHIND:异步写入
🎯 三、分布式计数器
3.1 RAtomicLong
RAtomicLong是分布式原子长整型:
java
public interface RAtomicLong extends RExpirable, RAtomicLongAsync {
long addAndGet(long delta);
long incrementAndGet();
long get();
}实现原理:
- 使用Redis的INCR命令
- 保证原子性
- 支持分布式操作
3.2 RAtomicDouble
RAtomicDouble是分布式原子双精度浮点型:
java
public interface RAtomicDouble extends RExpirable, RAtomicDoubleAsync {
double addAndGet(double delta);
double get();
}🎯 四、布隆过滤器
4.1 RBloomFilter
RBloomFilter是分布式布隆过滤器:
java
public interface RBloomFilter<V> extends RExpirable, RBloomFilterAsync<V> {
boolean add(V object);
boolean contains(V object);
boolean tryInit(long expectedInsertions, double falseProbability);
}应用场景:
- 大数据去重
- 缓存穿透防护
- 存在性判断
📖 学习资源
视频教程
书籍推荐
- 《Redis设计与实现》 - 黄健宏
- 《分布式系统常用技术及案例分析》 - 柳伟卫
网站资源
✅ 学习检查清单
- [ ] 已理解分布式集合实现
- [ ] 已理解分布式Map实现
- [ ] 已理解本地缓存机制
- [ ] 已理解分布式计数器
- [ ] 已理解布隆过滤器
- [ ] 已总结核心知识点
上一章节:分布式锁实现
下一章节:分布式服务
返回目录:Redisson源码深度解析