【分布式】Redis 分布式之List

说明

配置文件参考: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.RList;
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;

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

    @Resource
    private RedissonClient redissonClient;

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

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

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

    /**
     * 读取 list 的数据
     *
     * @param name 名称
     * @return 返回 是否新增成功
     */
    public List<String> readAll(String name) {
        return this.getList(name).readAll();
    }

    /**
     * 验证 是否包含
     *
     * @param name  名称
     * @param value 值
     * @return 返回 是否 包含
     */
    public boolean contains(String name, String value) {
        return this.getList(name).contains(value);
    }

    /**
     * 验证 是否包含
     *
     * @param name   名称
     * @param values 值
     * @return 返回 是否 包含
     */
    public boolean containsAll(String name, List<String> values) {
        return this.getList(name).containsAll(values);
    }

    /**
     * 移出第一个元素并且返回
     *
     * @param name 名称
     * @return 返回 移出元素
     */
    public String removeFirst(String name) {
        return this.getList(name).remove(0);
    }

    /**
     * 移出最后一个元素并且返回
     *
     * @param name 名称
     * @return 返回 移出元素
     */
    public String removeLast(String name) {
        int size = this.getList(name).size();
        return this.getList(name).remove(size - 1);
    }

    /**
     * 移出元素并且返回
     *
     * @param name  名称
     * @param index 索引
     * @return 返回 移出元素
     */
    public String remove(String name, int index) {
        return this.getList(name).remove(index);
    }
}

你可能感兴趣的:(笔记,课程培训,java,分布式,redis,缓存,nosql)