RedissonClient入门及常用方法

一,依赖

        <dependency>
            <groupId>org.redisson</groupId>
            <artifactId>redisson</artifactId>
            <version>3.19.0</version>
        </dependency>

二,创建工具类

//redisson 配置类
@Configuration
public class RedissonConfig {


    @Bean
    public RedissonClient redissonClient() {

        Config config =new Config();
        //redis地址
      config.useSingleServer().setAddress("redis://127.0.0.1:6379");
        return Redisson.create(config);

    }



}

 RedissonConfig常用方法

  1. 使用RedissonConfig配置创建RedissonClient对象:
Config config = new Config();
config.useSingleServer()
      .setAddress("redis://127.0.0.1:6379");
RedissonClient redisson = Redisson.create(config);
  1. 获取RBucket对象:
RBucket<String> bucket = redisson.getBucket("myBucket");
bucket.set("Hello Redis");
String value = bucket.get();
  1. 获取RMap对象:
RMap<String, Object> map = redisson.getMap("myMap");
map.put("key", "value");
Object value = map.get("key");
  1. 获取RSet对象:
RSet<String> set = redisson.getSet("mySet");
set.add("value1");
set.add("value2");
boolean contains = set.contains("value1");
  1. 获取RList对象:
RList<String> list = redisson.getList("myList");
list.add("value1");
list.add("value2");
String value = list.get(0);
  1. 获取RQueue对象:
RQueue<String> queue = redisson.getQueue("myQueue");
queue.offer("value1");
queue.offer("value2");
String value = queue.poll();
  1. 获取RDeque对象:
RDeque<String> deque = redisson.getDeque("myDeque");
deque.offerLast("value1");
deque.offerLast("value2");
String value = deque.pollFirst();
  1. 获取RLock对象:
RLock lock = redisson.getLock("myLock");
lock.lock();
try {
    // 业务逻辑
} finally {
    lock.unlock();
}

 RLock常用方法


        //对name进行加锁 线程会一直等待 直到拿到该锁
        lock.lock();
        //尝试对name进行加锁,线程会一直等待 直到拿到该锁 然后10秒后自动解锁
        lock.lock(10L,TimeUnit.SECONDS);
        //对name进行解锁,如果锁不是该线程持有则会抛出异常
        lock.unlock();
        //强制对name进行解锁,即此锁不论是那个线程持有都会进行解锁
        lock.forceUnlock();
 
        //尝试对name进行加锁,如果该锁被其他线程持有,会等待10秒,然后返回是否成功,如果成功 会在20秒后自动解锁
        boolean b = lock.tryLock(10L, 20L, TimeUnit.SECONDS);

        //尝试对name进行加锁 立即返回加锁状态 如果加锁成功会在20秒后自动解锁
        boolean b1 = lock.tryLock(20L, TimeUnit.SECONDS);
        //检查该锁是否被任何线程所持有
        boolean locked = lock.isLocked();
        //检查该锁是否当前线程持有
        boolean heldByCurrentThread = lock.isHeldByCurrentThread();
        //当前线程对该锁的保持次数
        int holdCount = lock.getHoldCount();
        //该锁的剩余时间
        long l = lock.remainTimeToLive();

手动编写分布式锁思路(补充:释放锁时判断是否是本线程的锁)

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RedissonClientRedisson库的核心接口,提供了一系列常用方法来操作Redis数据库。以下是RedissonClient常用方法的一些示例: 1. 使用RedissonConfig配置创建RedissonClient对象: ```java Config config = new Config(); config.useSingleServer() .setAddress("redis://127.0.0.1:6379"); RedissonClient redisson = Redisson.create(config); ``` 2. 获取RBucket对象: ```java RBucket<String> bucket = redisson.getBucket("myBucket"); bucket.set("Hello Redis"); String value = bucket.get(); ``` 3. 获取RMap对象: ```java RMap<String, Object> map = redisson.getMap("myMap"); map.put("key", "value"); Object value = map.get("key"); ``` 4. 获取RSet对象: ```java RSet<String> set = redisson.getSet("mySet"); set.add("value1"); set.add("value2"); boolean contains = set.contains("value1"); ``` 5. 获取RList对象: ```java RList<String> list = redisson.getList("myList"); list.add("value1"); list.add("value2"); String value = list.get(0); ``` 6. 获取RQueue对象: ```java RQueue<String> queue = redisson.getQueue("myQueue"); queue.offer("value1"); queue.offer("value2"); String value = queue.poll(); ``` 7. 获取RDeque对象: ```java RDeque<String> deque = redisson.getDeque("myDeque"); deque.offerLast("value1"); deque.offerLast("value2"); String value = deque.pollFirst(); ``` 8. 获取RLock对象: ```java RLock lock = redisson.getLock("myLock"); lock.lock(); try { // 业务逻辑 } finally { lock.unlock(); } ``` 这只是RedissonClient常用方法的一小部分示例,Redisson库还提供了更多丰富的功能和方法,可以根据具体需求进行使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值