redis具有很多值得推荐的功能,包括速度,可伸缩性和可用性 。但是,有一个问题是Redis不包括对JAVA之类的编程语言的内置支持 。相反,用户需要为Redis安装第三方Java客户端,例如Redisson 。
Redisson是Redis Java客户端,其中包含许多熟悉的Java对象,接口和集合,这使Java开发人员比以往任何时候都更容易地开始使用Redis 。下面,我们将讨论Radisson用户所依赖的5个基于Redis的顶级Java对象 。
1.MapJava中的Map接口用于将键映射到值的对象 。
【前5个基于Redis的Java对象】Redisson使用RMap接口在Redis中实现Map。旋转地图实现了所有的Redis的熟悉地图的方法:containsKey(),containsValue(),get(),isEmpty(),keySet(),put(),putIfAbsent(),remove(),replace(),values(),等等 。
以下是有关如何在Redisson中使用RMap接口的快速示例:
RMap<String, SomeObject> map = redisson.getMap("anyMap");SmeObject prevObject = map.put("123", new SomeObject());3SomeObject currentObject = map.putIfAbsent("323", new SomeObject());4SomeObject obj = map.remove("123");
RMap接口包括对Async,Reactive和RxJava2的支持 。此外,RMap还具有本地缓存??和数据分区等功能,因此可以极大地加快读取操作并提高可伸缩性 。
文章插图
2.SetJava中的Set接口用于无重复值的元素的无序集合 。
Redisson器具设置在Redis的与RSET接口 。RSET实现所有的Redis的熟悉的设置方法:add(),addAll(),clear(),contains(),containsAll(),equals(),isEmpty(),remove(),removeAll(),size(),等等 。
以下是有关如何在Redisson中使用RSet接口的快速示例:
RSet<SomeObject> set = redisson.getSet("anySet");set.add(new SomeObject());set.remove(new SomeObject());
与RMap一样,RSet也支持数据分区,以提高性能并加快读/写操作 。另外,用户可以为RMap中的元素定义驱逐策略(即每个条目的生存时间) 。3.holderJava中的Holder类用于存储指定类型的值,同时允许对该值进行副作用修改(例如,为了在Java中实现按引用调用) 。
Redisson通过RBucket接口在Redis中实现了Holder类,该接口可以容纳任何类型的对象 。RBucket工具方法,如compareAndSet(),get(),getAndDelete(),getAndSet(),set(),size(),trySet(),等等 。对象的最大大小为512兆字节 。
以下是有关如何在Redisson中使用RBucket接口的快速示例:
RBucket<AnyObject> bucket = redisson.getBucket("anyObject");bucket.set(new AnyObject(1));AnyObject obj = bucket.get();bucket.trySet(new AnyObject(3));bucket.compareAndSet(new AnyObject(4), new AnyObject(5));bucket.getAndSet(new AnyObject(6));
RBucket接口包括对Async,Reactive和RxJava2的支持 。文章插图
4.LockJava中的Lock类用于“锁定”对共享资源的访问,以同步多个线程 。锁是多线程和分布式编程的关键部分,这就是为什么锁在Redisson用户中也很受欢迎的原因 。
Redisson通过RLock接口在Redis中实现Lock类 。RLOCK实现所有的Redis的熟悉锁方法:lock(),lockInterruptibly(),tryLock(),unlock(),等等 。
以下是有关如何在Redisson中使用RLock接口的快速示例:
RLock lock = redisson.getLock("myLock");//传统的锁定方法lock.lock();// 或获取锁定,并在10秒后自动将其解锁lock.lock(10, TimeUnit.SECONDS);//或等待锁获取长达100秒 //并在10秒后自动将其解锁boolean res = lock.tryLock(100, 10, TimeUnit.SECONDS);if (res) {try {...} finally {lock.unlock();}}
RLock接口包括对Async,Reactive和RxJava2的支持 。Redisson还实现了各种类型的锁,例如公平锁,MultiLock,Redlock和ReadWriteLocks 。文章插图
5.ExecutorServiceJava中的ExecutorService接口用于异步执行Runnable和Callable对象 。
Redisson实现了Redis的的ExecutorService的接口与RExecutorService接口 。RExecutorService实现所有的Redis的熟悉的ExecutorService方法:invokeAll(),invokeAny(),isShutdown(),isTerminated(),shutdown(),shutdownNow(),submit(),等等 。
以下是有关如何在Redisson中使用RExecutorService接口的快速示例:
RExecutorService executorService = redisson.getExecutorService("myExecutor", options);executorService.submit(new RunnableTask(123));RExecutorService executorService = redisson.getExecutorService("myExecutor", options);Future<Long> future = executorService.submit(new CallableTask());Long result = future.get();
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 成都明前茶已经上市,春茶上市量少价涨
- 国际经济与贸易专业就业前景怎么样
- 灵活就业人员参保缴费指南
- 冬季开车的5个“毁车”操作,个个都很常见,不仅伤车还伤人
- 入手 Switch 前,也许你应该了解的 29 件事情
- 开网店的准备工作 开网店前需要做什么准备工作
- 淘宝网上开店前需要做哪些准备工作 开淘宝店铺前期要怎么做
- 花椒基于 Go 语言的敏感词系统架构讲解
- 基于Linux系统的高可用中小型网站集群架构说明
- 认识 V8 引擎