Redisson是架设在Redis基础上的一个Java驻内存数据网格(In-Memory Data Grid)。【Redis官方推荐】
Redisson在基于NIO的Netty框架上,充分的利用了Redis键值数据库提供的一系列优势,在Java实用工具包中常用接口的基础上,为使用者提供了一系列具有分布式特性的常用工具类。使得原本作为协调单机多线程并发程序的工具包获得了协调分布式多机多线程并发系统的能力,大大降低了设计和研发大规模分布式系统的难度。同时结合各富特色的分布式服务,更进一步简化了分布式环境中程序相互之间的协作。
兼容 Redis 2.6+ and JDK 1.6+,使用Apache License 2.0授权协议,阅读 wiki 来获取更多使用信息
1. 支持云托管服务模式(同时支持亚马逊云的ElastiCache Redis和微软云的Azure Redis Cache):
自动发现主节点变化
2. 支持Redis集群模式(同时支持亚马逊云的ElastiCache Redis Cluster和微软云的Azure Redis Cache):
自动发现主从节点
自动更新状态和组态拓扑
自动发现槽的变化
3. 支持Redis哨兵模式:
自动发现主、从和哨兵节点
自动更新状态和组态拓扑
4. 支持Redis主从模式
5. 支持Redis单节模式
6. 多节点模式均支持读写分离:从读主写,主读主写,主从混读主写
7. 所有对象和接口均支持异步操作
8. 自行管理的弹性异步连接池
9. 所有操作线程安全
10. 支持LUA脚本
11. 提供分布式对象
通用对象桶(Object Bucket)、二进制流(Binary Stream)、地理空间对象桶(Geospatial Bucket)、BitSet、原子整长形(AtomicLong)、原子双精度浮点数(AtomicDouble)、话题(订阅分发)、 布隆过滤器(Bloom Filter)和基数估计算法(HyperLogLog)
12. 提供分布式集合
映射(Map)、多值映射(Multimap)、集(Set)、列表(List)、有序集(SortedSet)、计分排序集(ScoredSortedSet)、字典排序集(LexSortedSet)、列队(Queue)、双端队列(Deque)、阻塞队列(Blocking Queue)、有界阻塞列队(Bounded Blocking Queue)、 阻塞双端列队(Blocking Deque)、阻塞公平列队(Blocking Fair Queue)、延迟列队(Delayed Queue)、优先队列(Priority Queue)和优先双端队列(Priority Deque)
12. 提供分布式锁和同步器
可重入锁(Reentrant Lock)、公平锁(Fair Lock)、联锁(MultiLock)、 红锁(RedLock)、读写锁(ReadWriteLock)、信号量(Semaphore)、可过期性信号量(PermitExpirableSemaphore)和闭锁(CountDownLatch)
12. 提供分布式服务
分布式远程服务(Remote Service, RPC)、分布式实时对象(Live Object)服务、分布式执行服务(Executor Service)、分布式调度任务服务(Scheduler Service)和分布式映射归纳服务(MapReduce)
13. 支持Spring框架
14. 提供Spring Cache集成
15. 提供Hibernate Cache集成
16. 提供JCache实现
17. 提供Tomcat Session Manager
18. 提供Spring Session集成
19. 支持异步流方式执行操作
20. 支持Redis管道操作(批量执行)
21. 支持安卓(Andriod)系统
22. 支持断线自动重连
23. 支持命令发送失败自动重试
24. 支持OSGi
25. 支持采用多种方式自动序列化和反序列化(Jackson JSON, Avro, Smile, CBOR, MsgPack, Kryo, FST, LZ4, Snappy和JDK序列化)
26. 超过1000个单元测试
Electronic Arts, Baidu, New Relic Synthetics, Brookhaven National Laboratory, Singtel, Infor, Netflix Dyno client, Ocous, Invaluable, Clover , Apache Karaf Decanter, Atmosphere Framework, BrandsEye, Datorama, BrightCloud, Azar, Snapfish, Crimson Hexagon, Quby, Base CRM
Java data structures powered by Redis. Introduction to Redisson (pdf)
Redisson PRO vs. Jedis: Which Is Faster?
A Look at the Java Distributed In-Memory Data Model (Powered by Redis)
Distributed tasks Execution and Scheduling in Java, powered by Redis
Introducing Redisson Live Objects (Object Hash Mapping)
Java Remote Method Invocation with Redisson
Java Multimaps With Redis
Distributed lock with Redis
Moving from Hazelcast to Redis
org.redissonredisson3.4.0org.redissonredisson2.9.0
// JDK 1.8+ 适用 compile 'org.redisson:redisson:3.4.0' // JDK 1.6+ 适用 compile 'org.redisson:redisson:2.9.0'
// 1. 构造Config对象 Config = ... // 2. 构造Redisson实例 RedissonClient redisson = Redisson.create(config); // 3. 获取需要的对象 RMap map = redisson.getMap("myMap"); RLock lock = redisson.getLock("myLock"); RExecutorService executor = redisson.getExecutorService("myExecutorService"); // 或者其它30多中对象及服务 ...
1、什么是redisson Redisson - 是一个高级的分布式协调Redis客服端,能帮助用户在分布式环境中轻松实现一些Java的对象,Redisson、Jedis、Lettuce 是三个不同的操作 Redis 的客户端,Jedis、Lettuce 的 API 更侧重对 Reids 数据库的 CRUD(增删改查),而 Redisson API 侧重于分布式开发 2、支持Redis多种连接
原文网址:Redisson--使用/教程/实例_IT利刃出鞘的博客-CSDN博客 简介 说明 本文用示例介绍Redisson的用法。 官网 官网:https://redisson.org/ git:https://github.com/redisson/redisson git文档:https://github.com/redisson/redisson/wiki 常用操作 获得
前言: 消息队列很好理解,顾明思议就是排队执行。Redisson 队列类似实现Java接口,例如Queue和BlockingQueue基于Redisson Api 来处理一些复杂的业务逻辑。 1.Queue Redisson中的RQueue对象实现了java.util.Queue接口。队列用于首先从最旧的元素开始处理元素的情况(也称为“先进先出”或FIFO)。与普通Java一样,RQu
我想在一些计算机之间建立点对点连接,这样用户就可以在没有外部服务器的情况下聊天和交换文件。我最初的想法如下: 我在服务器上制作了一个中央服务器插座,所有应用程序都可以连接到该插座。此ServerSocket跟踪已连接的套接字(客户端),并将新连接的客户端的IP和端口提供给所有其他客户端。每个客户端都会创建一个新的ServerSocket,所有客户端都可以连接到它。 换句话说:每个客户端都有一个Se
URI 方法 URI() string 返回当前客户端使用的服务器地址。 SetURI 方法 SetURI(uri string) 设置当前客户端使用的服务器地址。如果你想要设置多个服务器地址,请使用 SetURIList 方法代替该方法。 URIList 方法 URIList() []string 返回当前客户端可使用的服务器地址列表。 SetURIList 方法 SetURIList(uriL
客户端事件通过 SetEvent 方法进行设置。 客户端事件有两个,它们分别定义为: type onErrorEvent interface { OnError(name string, err error) } type onFailswitchEvent interface { OnFailswitch(Client) } 因为 go 语言不需要显式实现接口的特点,所以这两
创建客户端有两种方式,一种是直接使用特化的构造器函数,另一种是使用工厂构造器函数。 第一种方式返回的是具体的客户端结构体指针对象,第二种方式返回的是客户端接口对象。 使用特化的构造器函数创建客户端 特化的构造器函数有下面几个: func NewHTTPClient(uri ...string) (client *HTTPClient) func NewTCPClient(uri ...string
客户端下载地址: windows 32位安装包 windows 64位安裝包 mac 安装包 Android App iOS App
问题 你想使用网络上提供的服务。 解决方案 创建一个基本的 TCP 客户机。 在 Node.js 中 net = require 'net' domain = 'localhost' port = 9001 connection = net.createConnection port, domain connection.on 'connect', () -> console.log
客户端调用服务端 服务端的proto文件copy到客户端 获取grpc客户端 //sample 为服务名称 var client = await provider.FindGrpcClient<RpcTest.RpcTestClient>("sample"); 调用服务方法 var result = await client.SayHelloAsync(new HelloRequest() {
Disque 在源码中附带了命令行客户端程序 disque , 通过这个程序可以以交互的形式向 Disque 发送命令: $ ./disque 127.0.0.1:7711> PING PONG 另外你也可以使用以下编程语言的客户端来操作 Disque : Ruby 客户端 https://rubygems.org/gems/disque Java 客户端 https://github.com/x