什么网站做电子元器件,全球有多少亿人口,做网站还需要买服务器么,微信多账号管理系统文章目录 1. 前言2. Redisson基础概念2.1 数据结构和并发工具2.1.1 对Redis原生数据类型的封装和使用2.1.2 分布式锁实现和应用2.1.3 分布式集合使用方法 2.2 Redisson的高级特性2.2.1 分布式对象实现和使用2.2.2 分布式消息队列实现和使用2.2.3 分布式计数器实现和使用 3. 参考… 文章目录 1. 前言2. Redisson基础概念2.1 数据结构和并发工具2.1.1 对Redis原生数据类型的封装和使用2.1.2 分布式锁实现和应用2.1.3 分布式集合使用方法 2.2 Redisson的高级特性2.2.1 分布式对象实现和使用2.2.2 分布式消息队列实现和使用2.2.3 分布式计数器实现和使用 3. 参考资料4. 源码地址5. Redis从入门到精通系列文章 1. 前言
在我们的上一篇文章中我们介绍了 Redisson 的相关概念 历史背景发展现状。现在我们已经准备好进一步深入了解 Redisson基础概念并了解它如何以及在哪些场景中提供出色、可靠的性能。在本篇文章中, 我们将 进一步理解和使用 Redisson这是一种为 Java 提供的高级 Redis 客户端。 上一章内容 《【实践篇】Redis最强Java客户端(一)之Redisson入门介绍》
2. Redisson基础概念 2.1 数据结构和并发工具
2.1.1 对Redis原生数据类型的封装和使用
Redisson对Redis基本数据类型进行了封装为Java开发者提供了丰富的数据结构和并发工具。例如
RBucket封装了Redis的string字符串RMap封装了Redis的HashTable也即Redis的hash命令RList封装了Redis的List实现了List接口RSet封装了Redis的Set实现了Set接口RSortedSet封装了Redis的Zset接口RQueue封装了Redis的list命令实现了Queue接口RDeque封装了Redis的list命令实现了Deque接口RAtomicLong封装了Redis的string字符串实现了原子性的long。 RBucket RBucket 用于对单一值进行缓存代替 Java 中的 AtomicReference。在分布式环境中提供了对单一值的持久化存储和原子操作。例如 RBucketString bucket redisson.getBucket(bucket);
bucket.set(redisson);
String value bucket.get();RMap RMap 用于存储需要多个键值对代替 Java 中的 HashMap。在分布式环境中提供了 Map 实现支持事务和原子操作。例如 RMapString, Integer map redisson.getMap(map);
map.put(a, 1);
map.put(b, 2);
Integer bValue map.get(b);RList RList 用于有序存储多个元素并可能存储重复元素代替 Java 中的 ArrayList。实现了分布式环境下的可变数组支持正向和反向遍历。例如 RListInteger list redisson.getList(list);
list.add(1);
list.add(2);
list.add(3);
Integer secondElement list.get(1);RSet RSet 用于存储无序且不重复的多个元素代替 Java 中的 HashSet。在分布式环境中提供了无序集合的实现支持常见的集合操作。例如 RSetInteger set redisson.getSet(set);
set.add(1);
set.add(2);
set.add(3);
boolean containsTwo set.contains(2);RSortedSet RSortedSet 用于有序存储元素并能根据元素的自然顺序或自定义比较器进行排序代替 Java 中的 TreeSet。在分布式环境下实现了有序集合支持快速地获取有序集中的最大或最小元素。例如 RSortedSetInteger sortedSet redisson.getSortedSet(sortedSet);
sortedSet.add(3);
sortedSet.add(1);
sortedSet.add(2);
Integer firstElement sortedSet.first();RQueue RQueue 用于多个元素按一定顺序进行存储并按该顺序进行检索代替 Java 中的 Queue。在分布式环境中提供了队列实现尤其有利于实现生产者-消费者模型。例如 RQueueInteger queue redisson.getQueue(queue);
queue.add(1);
Integer item queue.poll();RDeque RDeque 用于需要从两端插入或删除元素的数据结构代替 Java 中的 LinkedList。在分布式环境中提供了双端队列实现支持从头部或尾部插入和删除元素。例如 RDequeInteger deque redisson.getDeque(deque);
deque.addFirst(1);
deque.addLast(2);
Integer firstElement deque.getFirst();
Integer lastElement deque.getLast();RAtomicLong RAtomicLong 用于对单一值进行原子操作如自增、自减等代替 Java 中的 AtomicLong。在分布式环境下进行原子增减操作避免并发问题。例如 RAtomicLong atomicLong redisson.getAtomicLong(atomicLong);
atomicLong.set(1);
atomicLong.incrementAndGet();
long atomicLongValue atomicLong.get();2.1.2 分布式锁实现和应用
Redisson支持多种分布式锁和同步器如RLockRSemaphoreRCountDownLatchRReadWriteLock等。这些锁具有超时自动解锁、阻塞等待锁和公平锁等特性。
例如使用RLock实现分布式锁
RLock lock redisson.getLock(anyLock);
lock.lock();
try {// 执行业务代码
} finally {lock.unlock();
}2.1.3 分布式集合使用方法
Redisson提供了分布式的List、Set、SortedSet、Map和Queue适用于各种场景。例如使用RList实现分布式列表
RListString list redisson.getList(anyList);
list.add(1);
list.add(2);2.2 Redisson的高级特性
2.2.1 分布式对象实现和使用
Redisson提供了一些分布式对象如RBloomFilter布隆过滤器RHyperLogLogRLexSortedSet等。例如使用RBloomFilter实现分布式布隆过滤器
RBloomFilterString bloomFilter redisson.getBloomFilter(sampleFilter);
bloomFilter.tryInit(10000L, 0.03);
bloomFilter.add(item);2.2.2 分布式消息队列实现和使用
Redisson支持RQueue、RBlockingQueue、RDelayedQueue等分布式队列和阻塞队列。例如使用RQueue实现分布式消息队列
RQueueString queue redisson.getQueue(anyQueue);
queue.offer(item);
String item queue.poll();2.2.3 分布式计数器实现和使用
Redisson提供了一些分布式计数器如RAtomicLong、RAtomicDouble、RCountDownLatch等。例如使用RAtomicLong实现分布式原子长整数
RAtomicLong atomicLong redisson.getAtomicLong(anyLong);
atomicLong.set(3);
atomicLong.incrementAndGet();3. 参考资料 Redisson官方网站https://redisson.org/ Redisson GitHub仓库https://github.com/redisson/redisson redisson 参考文档 https://redisson.org/documentation.html
4. 源码地址
https://github.com/wangshuai67/icepip-springboot-action-examples https://github.com/wangshuai67/Redis-Tutorial-2023
5. Redis从入门到精通系列文章
《【Redis实践篇】使用Redisson 优雅实现项目实践过程中的5种场景》《Redis使用Lua脚本和Redisson来保证库存扣减中的原子性和一致性》《SpringBoot Redis 使用Lettuce和Jedis配置哨兵模式》《Redis【应用篇】之RedisTemplate基本操作》《Redis 从入门到精通【实践篇】之SpringBoot配置Redis多数据源》《Redis 从入门到精通【进阶篇】之三分钟了解Redis HyperLogLog 数据结构》《Redis 从入门到精通【进阶篇】之三分钟了解Redis地理位置数据结构GeoHash》《Redis 从入门到精通【进阶篇】之高可用哨兵机制(Redis Sentinel)详解》《Redis 从入门到精通【进阶篇】之redis主从复制详解》《Redis 从入门到精通【进阶篇】之Redis事务详解》《Redis从入门到精通【进阶篇】之对象机制详解》《Redis从入门到精通【进阶篇】之消息传递发布订阅模式详解》《Redis从入门到精通【进阶篇】之持久化 AOF详解》《Redis从入门到精通【进阶篇】之持久化RDB详解》《Redis从入门到精通【高阶篇】之底层数据结构字典(Dictionary)详解》《Redis从入门到精通【高阶篇】之底层数据结构快表QuickList详解》《Redis从入门到精通【高阶篇】之底层数据结构简单动态字符串(SDS)详解》《Redis从入门到精通【高阶篇】之底层数据结构压缩列表(ZipList)详解》《Redis从入门到精通【进阶篇】之数据类型Stream详解和使用示例》 大家好我是冰点今天的【实践篇】Redis最强Java客户端(二)之Redisson基础概念全部内容就是这些。如果你有疑问或见解可以在评论区留言。