package data.loadcache; import java.util.ArrayList; import java.util.Date; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.concurrent.ConcurrentHashMap; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import kernel.web.ApplicationUtil; import project.party.PartyRedisKeys; import project.party.model.Party; import project.party.model.UserRecom; import project.redis.RedisHandler; public class PartyLoadCacheService { private RedisHandler redisHandler; private static final Logger logger = LoggerFactory.getLogger(PartyLoadCacheService.class); public void loadcache() { loadParty(); loadUserRecom(); logger.info("完成Party数据加载redis"); } private void loadParty() { List list=ApplicationUtil.executeSelect(Party.class); Map cache = new ConcurrentHashMap(); Map onlineCache = new ConcurrentHashMap(); for (int i = 0; i < list.size(); i++) { Party party = list.get(i); redisHandler.setSync(PartyRedisKeys.PARTY_ID + party.getId().toString(), party); redisHandler.setSync(PartyRedisKeys.PARTY_USERNAME + party.getUsername(), party); cache.put(list.get(i).getId().toString(), party); } redisHandler.setSync(PartyRedisKeys.PARTY_ONLINEUSER, onlineCache); } private void loadUserRecom() { Map> map = new ConcurrentHashMap>(); List list = ApplicationUtil.executeSelect(UserRecom.class); for (int i = 0; i < list.size(); i++) { redisHandler.setSync(PartyRedisKeys.USER_RECOM_PARTYID + list.get(i).getPartyId(), list.get(i)); List recos = map.get(list.get(i).getReco_id().toString()); if (recos == null) recos = new ArrayList(); recos.add(list.get(i)); map.put(list.get(i).getReco_id().toString(), recos); } Map params = new ConcurrentHashMap(); Iterator>> it = map.entrySet().iterator(); while (it.hasNext()) { Entry> entry = it.next(); params.put(PartyRedisKeys.USER_RECOM_RECO_ID + entry.getKey(), entry.getValue()); } redisHandler.setBatchSync(params); } public void setRedisHandler(RedisHandler redisHandler) { this.redisHandler = redisHandler; } }