package com.liquidnet.service;

import com.liquidnet.common.cache.redis.config.RedisConfig;
import lombok.extern.slf4j.Slf4j;

/**
 * @author AnJiabin <anjiabin@zhengzai.tv>
 * @version V1.0
 * @Description: TODO
 * @class: MathUtil
 * @Package com.liquidnet.common.cache.redis.util
 * @Copyright: LightNet @ Copyright (c) 2021
 * @date 2021/8/10 18:03
 */
@Slf4j
public class JxlMathUtil {
    public static int getIndex(String key){
        log.debug("MathUtil.getIndex key:{} hashcode:{}",key,key.hashCode());
        int defaultDb = 0;
        int totalDbs = 256;
//        totalDbs = 256;
        if(totalDbs==1){
            log.info("only one db : {} ",defaultDb);
            return defaultDb;
        }
        int mod = 250;
        if(totalDbs > 1 && totalDbs < 256){
            if(totalDbs==16){
                mod = 15;
            }else{
                mod = totalDbs - 1;
            }
        }
        long value = Long.valueOf(key.hashCode());
        int hash=(int)(value ^ (value >>> 32));
        int index=hash % mod;
        log.debug("MathUtil.getIndex key:{} index:{}",key,index);
        return index;
    }

    public static void main(String[] args) {
        /*RedisConfig redisConfig = new RedisConfig();
        redisConfig.getRedisTemplateByDb(MathUtil.getIndex("1"));*/
//        getIndex("kylin:performances:id:296290722991104003684701");
        getIndex("sweet:integralActivity:prizeNum:activityId:499142611246284803622253:prizeId:499142823268352009440982");
//        getIndex("kylin:order:coupon:id:397983761946132487870836");
//        getIndex("sweet:integralActivity:list");
//        getIndex("kylin:order:id:325244198036357120519956");
//        getIndex("kylin:performances:roadShowId:5936345");
//        getIndex("kylin:performances:roadShowId:570");
//        getIndex("kylin:order:refund:address");
//        getIndex("basicServices:upushList:IOS");
//        getIndex("basicServices:upushList:Android");
//        getIndex("basicServices:zhengzaiAppVersionsAndroid");
//        getIndex("basicServices:zhengzaiAppVersionsIos");
//        getIndex("basicServices:zhengzaiCheckAppVersionsAndroid");
//        getIndex("basicServices:zhengzaiCheckAppVersionsIos");
//        getIndex("kylin:performances_inventory:ticket:id:245075780722810880782444:surplusGeneral");
//        getIndex("kylin:performances:notice");
    }
}