java redisson_Redisson一个Redis的Java客户端开发包

面试官问我,除了Jedis还知道什么操作Redis的Java 客户端开发包,我就见过Lettuce和Jedis两个,而且我还没想起来Lettuce这个单词……然后,面试凉凉。那今天就来学习一下,第三个常见的强大的Java 客户端开发包Redisson。

一、Redisson介绍

https://github.com/redisson/redisson/ Redisson的项目主页已经对Redisson做了详细的介绍,这里就不用过多的赘述了。简单的来说就是,Redisson是一个强大的Java 客户端开发包,相比之下其他客户端提供的功能还仅仅停留在作为数据库驱动,而Redisson将原生的Redis Hash,List,Set,String,Geo,HyperLogLog等数据结构封装为Java里大家最熟悉的映射(Map),列表(List),集(Set),通用对象桶(Object Bucket),地理空间对象桶(Geospatial Bucket),基数估计算法(HyperLogLog)等结构,在这基础上还提供了分布式的多值映射(Multimap),本地缓存映射(LocalCachedMap),有序集(SortedSet),计分排序集(ScoredSortedSet),字典排序集(LexSortedSet),列队(Queue),阻塞队列(Blocking Queue),有界阻塞列队(Bounded Blocking Queue),双端队列(Deque),阻塞双端列队(Blocking Deque),阻塞公平列队(Blocking Fair Queue),延迟列队(Delayed Queue),布隆过滤器(Bloom Filter),原子整长形(AtomicLong),原子双精度浮点数(AtomicDouble),BitSet等Redis原本没有的分布式数据结构。不仅如此,Redisson还实现了Redis文档中提到像分布式锁Lock这样的更高阶应用场景。事实上Redisson并没有不止步于此,在分布式锁的基础上还提供了联锁(MultiLock),读写锁(ReadWriteLock),公平锁(Fair Lock),红锁(RedLock),信号量(Semaphore),可过期性信号量(PermitExpirableSemaphore)和闭锁(CountDownLatch)这些实际当中对多线程高并发应用至关重要的基本部件。

二、Redisson整合SpringBoot

1、导包

org.redisson

redisson-spring-boot-starter

3.13.4

org.springframework.boot

spring-boot-starter-data-redis

2、配置

在Resouces下创建Redisson-config.yml配置文件。

singleServerConfig:idleConnectionTimeout:10000connectTimeout:10000timeout:3000retryAttempts:3retryInterval:1500password:subscriptionsPerConnection:5clientName:nulladdress:"redis://192.168.56.254:6379"subscriptionConnectionMinimumIdleSize:1subscriptionConnectionPoolSize:50connectionMinimumIdleSize:32connectionPoolSize:64database:0dnsMonitoringInterval:5000threads:0nettyThreads:0codec:class:org.redisson.codec.JsonJacksonCodectransportMode:"NIO"

Bean方式加载配置文件。

@Configuration

public class RedissonConfiguration {

@Bean

public RedissonClient redisson() throws IOException {

File file = ResourceUtils.getFile("classpath:redisson-config.yml");

Config config = Config.fromYAML(file);

return Redisson.create(config);

}

}

3、使用

@SpringBootTest

class RedissonApplicationTests {

@Autowired

private RedissonClient redissonClient;

@Autowired

private RedisTemplate redisTemplate;

@Test

void testSet() {

//序列化正常,存储正常

Person person = new Person();

person.setId("001");

person.setName("Tom");

redissonClient.getBucket("test").set(person);

}

@Test

void testGet() {

//反序列化正常,取值正常

RBucket bucket = redissonClient.getBucket("test");

Person person = bucket.get();

System.out.println(person.getId() + " " + person.getName());

}

@Test

void testTemplate() {

//redisTemplate正常使用

redisTemplate.opsForValue().set("testTemplate", "testTemplate");

System.out.println(redisTemplate.opsForValue().get("testTemplate"));

}

@Test

void testLock(){

//分布式锁

RLock lock = redissonClient.getLock("testLock");

try {

lock.lock();

// TODO: 2020/9/27

}finally {

lock.unlock();

}

}

}

三、总结

Redisson是一个非常强大好用的Java操作Redis客户端,他为我们封装了很多基于Redis的功能实现,使得开发者不用过多的关注Redis而专注于业务的开发。以上只是初步介绍了Redisson如何使用,如果需要深入了解还需参考官方文档进行开发。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值