package com.ag.secp.platform.redis;

import com.wb.common.KvBean;

import java.util.List;
import java.util.Map;

/**
 * Created by WinWang on 2018-8-23.
 * 顾名思义
 */

public interface PushToRedisInterface {

    /**
     * 初始化：清掉 KVBUFF_ Redis key，重新从数据库查出来代码放到redis中
     */
    void redisLoad();


    /**
     * 通过keyName 从Redis中找到 KvBean集合
     * @param keyName
     * @return
     */
    List<KvBean> getKvListFromRedis(String keyName);

    /**
     * 把  KeyName  —— List<KvBean> 放到 Redis中
     * @param kvMap
     */
    void intoRedis(Map<String, List<KvBean>> kvMap);

    /**
     * 上边的方法Map循环内调用这个
     * @param keyName
     * @param kvBeanList
     */
    void putRedis(String keyName, List<KvBean> kvBeanList, Boolean isInit);

    /**
     * 数据构建，把List<KvBean> 对象转换为以 keyName分组的Map中
     * @param kvBeanList
     * @return
     */
    Map<String,List<KvBean>>  groupKvBeanList(List<KvBean> kvBeanList);

    /**
     * 更新缓存：思想：根据来源表再去查一遍放进去
     * @param keyName
     */
    void updateRedisListByKey(String keyName);
}
