说明
配置文件参考: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.RBlockingDeque;
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;
/**
* RedisBlockingDeque
*
* @author 王思勤
*/
@Component
public class RedisBlockingDeque {
@Resource
private RedissonClient redissonClient;
/**
* 获取 字符串 的 RSet
*
* @param name 名称
* @return 返回 值
*/
public RBlockingDeque<String> getBlockingDeque(String name) {
RBlockingDeque<String> blockingDeque = redissonClient.getBlockingDeque(name, StringCodec.INSTANCE);
Assert.notNull(blockingDeque, "blockingDeque is null");
return blockingDeque;
}
/**
* 新增 数据
*
* @param name 名称
* @param value 值
* @return 返回 是否成功
*/
public boolean add(String name, String value) {
return this.getBlockingDeque(name).add(value);
}
/**
* 新增 数据
*
* @param name 名称
* @param value 值
* @return 返回 是否成功
*/
public void addFirst(String name, String value) {
this.getBlockingDeque(name).addFirst(value);
}
/**
* 新增 数据
*
* @param name 名称
* @param value 值
* @return 返回 是否成功
*/
public void addLast(String name, String value) {
this.getBlockingDeque(name).addLast(value);
}
/**
* 新增 数据
*
* @param name 名称
* @param values 值
* @return 返回 是否成功
*/
public void addLast(String name, List<String> values) {
this.getBlockingDeque(name).addAll(values);
}
/**
* pop 数据
*
* @param name 名称
* @return 返回 值
*/
public String poll(String name) {
return this.getBlockingDeque(name).poll();
}
/**
* pop 数据
*
* @param name 名称
* @return 返回 值
*/
public String pollFirst(String name) {
return this.getBlockingDeque(name).pollFirst();
}
/**
* pop 数据
*
* @param name 名称
* @return 返回 值
*/
public String pollLast(String name) {
return this.getBlockingDeque(name).pollLast();
}
/**
* pop 数据
*
* @param name 名称
* @param limit 数量
* @return 返回 值
*/
public List<String> pollFirst(String name, int limit) {
return this.getBlockingDeque(name).pollFirst(limit);
}
/**
* pop 数据
*
* @param name 名称
* @param limit 数量
* @return 返回 值
*/
public List<String> pollLast(String name, int limit) {
return this.getBlockingDeque(name).pollLast(limit);
}
}