All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.biz.redis.utils.RedisSetUtils Maven / Gradle / Ivy

There is a newer version: 1.5.2
Show newest version
package com.biz.redis.utils;

import lombok.NonNull;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.SetOperations;

import java.util.Set;

/**
 * Redis Set Utils 有序集合
 *
 * @author francis
 * @since 2024-04-02 17:17
 **/
@Slf4j
@RequiredArgsConstructor
public class RedisSetUtils {

    private final SetOperations setOperations;

    private final RedisCommonUtils redisCommonUtils;

    /**
     * 根据key获取Set中的所有值
     *
     * @param key 键
     * @return
     */
    public Set sGet(@NonNull String key) {
        try {
            return setOperations.members(key);

        } catch (Exception e) {
            log.error("根据key获取Set中的所有值 出现异常 error {}", e.getMessage(), e);
        }

        return null;
    }

    /**
     * 根据value从一个set中查询,是否存在
     *
     * @param key   键
     * @param value 值
     * @return true 存在 false不存在
     */
    public Boolean sHasKey(@NonNull String key, @NonNull Object value) {
        try {
            return setOperations.isMember(key, value);

        } catch (Exception e) {
            log.error("根据value从一个set中查询,是否存在 出现异常 error {}", e.getMessage(), e);
        }

        return false;
    }

    /**
     * 将数据放入set缓存
     *
     * @param key    键
     * @param values 值 可以是多个
     * @return 成功个数
     */
    public Long sSet(@NonNull String key, @NonNull Object... values) {
        try {
            return setOperations.add(key, values);
        } catch (Exception e) {
            log.error("将数据放入set缓存 出现异常 error {}", e.getMessage(), e);
        }

        return 0L;
    }

    /**
     * 将set数据放入缓存
     *
     * @param key    键
     * @param time   时间(秒)
     * @param values 值 可以是多个
     * @return 成功个数
     */
    public Long sSetAndTime(@NonNull String key, long time, @NonNull Object... values) {
        try {
            Long count = setOperations.add(key, values);
            redisCommonUtils.expire(key, time);
            return count;

        } catch (Exception e) {
            log.error("将set数据放入缓存 出现异常 error {}", e.getMessage(), e);
        }

        return 0L;
    }

    /**
     * 获取set缓存的长度
     *
     * @param key 键
     * @return
     */
    public Long sGetSetSize(@NonNull String key) {
        try {
            return setOperations.size(key);

        } catch (Exception e) {
            log.error("获取set缓存的长度 出现异常 error {}", e.getMessage(), e);

        }

        return 0L;
    }

    /**
     * 移除值为value的
     *
     * @param key    键
     * @param values 值 可以是多个
     * @return 移除的个数
     */
    public Long setRemove(@NonNull String key, @NonNull Object... values) {
        try {
            return setOperations.remove(key, values);

        } catch (Exception e) {
            log.error("移除值为value的 出现异常 error {}", e.getMessage(), e);
        }

        return 0L;
    }

}