레디 스의 사용 setnx [레디 스]

비즈니스 수요은이 : 번호판 번호를 추가, 번호판을 쓸어 해당 사용자의 회원 카드가 오로라 서비스에 밀어 부족 잔고가있는 경우, 하나 개의 시스템, 애플릿에 메시지를 누릅니다.
직접 다시 팁, 또는 추가 저장, 실행 논리를 인정 된 경우 차량이 오늘 입력되어 있는지 여부를 확인하기 위해 번호판 번호 요구 사항을 추가합니다.

질문 :
푸시 논리가 마지막으로 푸시의 주요 논리, 논리에 영향을주지 않습니다. (가) 접근 방식을 반복하는 경우는 접근이 마침내 논리에 입원에보고할지 여부를 다시 결정되는 경우, 나는 전체 저장 작업으로 수행하려고, 오로라 밀어 넣기를 반복 할 수 없습니다,이 확실히 허용되지 않습니다.

해결 방법 :
우리는 푸시 논리가 잠겨 선택하도록 매장에서 동일한 번호판 번호가 같은 날, 당신은 여러 번 밀어 수 없습니다.

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String currentDate = sdf.format(new Date());
if(jedisPythonUtil.setnx("getLicencePlateList:" + addRequestModel.getStoreId() + ":" + currentDate + ":" + addRequestModel.getCarNum(),  "0", 86400) > 0) {
    //极光推送逻辑
}

우리는 방법 setnx 보면 :

    private JedisPool jedisPoolPython;
    
	/**
     * set if not exists,若key已存在,则setnx不做任何操作
     *
     * @param key
     * @param value key已存在,1:key赋值成功
     * @param expire 过期时间,单位:秒
     * @return
     * @author jqlin
     */
    public  long setnx(String key, String value, int expire) {
        long result = -1;
        Jedis jedis = getJedis();
        try {
            if(null != jedis) {
                result = jedis.setnx(key, value);
                jedis.expire(key, expire);
            }
        } catch (Exception e) {
            log.error("设置值失败:" + e.getMessage(), e);

        } finally {
            returnResource(jedis);
        }

        return result;
    }
    
    /**
     * 同步获取Jedis实例
     *
     * @return Jedis
     */
    public  Jedis getJedis() {
        if (jedisPoolPython == null) {
            poolInit();
        }
        Jedis jedis = null;
        try {
            if (jedisPoolPython != null) {
                jedis = jedisPoolPython.getResource();
            }
        } catch (Exception e) {
            log.error("同步获取Jedis实例失败" + e.getMessage(), e);
            returnResource(jedis);
        }
        return jedis;
    }
    
    /**
     * 释放jedis资源
     * @param jedis
     */
    public static void returnResource(Jedis jedis) {
        if (jedis != null) {
            jedis.close();
        }
    }

요약 :
음주, 코드를 복사 시작을 다시 자신의 요구의 의미를 이해하지.

게시 된 253 개 원래 기사 · 원의 찬양 (76) · 전망 290 000 +

추천

출처blog.csdn.net/hongwei15732623364/article/details/88426867