0
点赞
收藏
分享

微信扫一扫

【分布式】Redis分布式之PriorityBlockingDeque

说明

配置文件参考:https://blog.csdn.net/qq_38428623/article/details/123217001?utm_source=app&app_version=5.1.1&code=app_1562916241&uLinkId=usr1mkqgl919blen

使用
package com.demo.redis.list;

import org.redisson.api.RPriorityBlockingDeque;
import org.redisson.api.RedissonClient;
import org.redisson.client.codec.StringCodec;
import org.springframework.stereotype.Component;
import org.springframework.util.Assert;

import javax.annotation.Resource;
import java.util.List;

/**
 * RedisPriorityBlockingDeque
 *
 * @author 王思勤
 */
@Component
public class RedisPriorityBlockingDeque {

    @Resource
    private RedissonClient redissonClient;

    /**
     * 获取 字符串 的 RSet
     *
     * @param name 名称
     * @return 返回 值
     */
    public RPriorityBlockingDeque<String> getPriorityBlockingDeque(String name) {
        RPriorityBlockingDeque<String> PriorityBlockingDeque = redissonClient.getPriorityBlockingDeque(name, StringCodec.INSTANCE);
        Assert.notNull(PriorityBlockingDeque, "PriorityBlockingDeque is null");
        return PriorityBlockingDeque;
    }

    /**
     * 新增 数据
     *
     * @param name  名称
     * @param value 值
     * @return 返回 是否成功
     */
    public boolean add(String name, String value) {
        return this.getPriorityBlockingDeque(name).add(value);
    }

    /**
     * 新增 数据
     *
     * @param name  名称
     * @param value 值
     * @return 返回 是否成功
     */
    public void addFirst(String name, String value) {
        this.getPriorityBlockingDeque(name).addFirst(value);
    }

    /**
     * 新增 数据
     *
     * @param name  名称
     * @param value 值
     * @return 返回 是否成功
     */
    public void addLast(String name, String value) {
        this.getPriorityBlockingDeque(name).addLast(value);
    }

    /**
     * 新增 数据
     *
     * @param name   名称
     * @param values 值
     * @return 返回 是否成功
     */
    public void addLast(String name, List<String> values) {
        this.getPriorityBlockingDeque(name).addAll(values);
    }

    /**
     * pop 数据
     *
     * @param name 名称
     * @return 返回 值
     */
    public String poll(String name) {
        return this.getPriorityBlockingDeque(name).poll();
    }

    /**
     * pop 数据
     *
     * @param name 名称
     * @return 返回 值
     */
    public String pollFirst(String name) {
        return this.getPriorityBlockingDeque(name).pollFirst();
    }

    /**
     * pop 数据
     *
     * @param name 名称
     * @return 返回 值
     */
    public String pollLast(String name) {
        return this.getPriorityBlockingDeque(name).pollLast();
    }

    /**
     * pop 数据
     *
     * @param name  名称
     * @param limit 数量
     * @return 返回 值
     */
    public List<String> pollFirst(String name, int limit) {
        return this.getPriorityBlockingDeque(name).pollFirst(limit);
    }

    /**
     * pop 数据
     *
     * @param name  名称
     * @param limit 数量
     * @return 返回 值
     */
    public List<String> pollLast(String name, int limit) {
        return this.getPriorityBlockingDeque(name).pollLast(limit);
    }
}
举报

相关推荐

0 条评论