1. 程式人生 > >tomcat啟動時將快取放入Redis中

tomcat啟動時將快取放入Redis中

package com.tmhc.sms.cache;

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

import javax.annotation.PostConstruct;

import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;

import redis.clients.jedis.Jedis;

import com.alibaba.fastjson.JSONObject;
import com.tmhc.sms.service.SysDepartmentEntityService;
import com.tmhc.sms.utils.RedisUtil;



@Configuration
public class LoadData {
	private Logger logger = Logger.getLogger(LoadData.class);
	@Autowired
	private SysDepartmentEntityService sysDepartmentEntityServiceImpl;
	
	@PostConstruct  
	public void loadData(){
		new Thread(){
			public void run(){
				while(true){
					try {
						Thread.sleep(1000*2);
					} catch (InterruptedException e) {
						e.printStackTrace();
					}
					logger.info("載入商戶資料......");
					List<Map<String, String>> mapList = sysDepartmentEntityServiceImpl.getDepartmentData();
					Jedis jedis = RedisUtil.getJedis();
					//清空快取資料
					Set<String> set = jedis.keys("depart-*");
					for(String key : set){
						jedis.del(key);  
					}
					//載入所有快取資料
					for (Map<String, String> map : mapList) {
						String referralcode = map.get("referralcode");
						String value = JSONObject.toJSONString(map);
						jedis.rpush("depart-"+referralcode, value);//在名稱為key的list尾新增一個值為value的元素
					}
					break;
				}
			}
		}.start();
	}
}

相關推薦

tomcat啟動快取Redis

package com.tmhc.sms.cache; import java.util.List; import java.util.Map; import java.util.Set; imp

java通過檔案路徑讀取該路徑下的所有檔案並list

需求:所有xml檔案都放在某個目錄下,寫個方法讀取所有xml檔案,然後傳給下面的某個方法呼叫 實現:先把所有的xml檔案通過遞迴讀取出來 ,存放到List中,然後以檔名為Key,檔案(檔案路徑+檔名)為Value,存放到Map中,供後面程式呼叫 程式碼如下: import java.io.File

的方法數總結(球盒模型問題)

本篇部落格主要講解球盒模型問題中所有情況,因為該問題是組合數學中的最常見的一類問題,所以有必要在這裡詳細地說一說。 該類問題涉及到三個因素,分別是球、盒子、盒子是否可以為空。所以大概可以將該問題分為以下八種情況: 1.將r個無區別的球放入n個有標誌的

Mybatis結果map別名不是駝峰形式

map 形式 bat dst 查詢 key sta code ati 查詢時如果給字段起別名,並且將查詢結果映射到一個Map,那麽Map的key將是忽略大小寫的。映射到一個實體類是沒這個問題的。 state as addState 從Map中取值時應該:map.get("a

啟動伺服器配置引數從資料庫載入到快取

最近做專案,碰到這樣的需求:在伺服器啟動的時候從資料庫讀取引數,將引數儲存到記憶體快取中 由於使用的是spring的自動注入方式,一開始用@component註解在啟動的時候載入查詢配置引數的bean,由於bean中要用到其他bean來查詢,但此時都為null 查詢相關資料,發現@PostC

java關於使用subList方法擷取的字串,redis快取的相關問題及解決方法

    在前幾天做專案的時候,會對其他專案通過阿里雲發來的訊息中的某個List型別的欄位進行擷取,並將擷取後的結果存入redis中。但是在專案執行起來的時候,獲取redis中該欄位的內容會出現錯誤,錯誤提示如下: (error) WRONGTYPE Operation a

Tomcat啟動載入資料到快取[web.xmllistener載入順序]

最近用到在Tomcat伺服器啟動時自動載入資料到快取,這就需要建立一個自定義的快取監聽器並實現ServletContextListener介面,並且在此自定義監聽器中需要用到Spring的依賴注入功能.在web.xml檔案中監聽器配置如下: <li

Tomcat啟動載入某個servlet

不為 load color col pos ems 項目 設置 應用 當我們做一個java項目時,有幾個功能都須要載入servlet或者實現某個共同的方法,盡管我們一味地在每個功能中依次載入也不是不能夠,可是當某個servlet 或者方法被頻繁地載入和應用。我

應用啟動白屏背景替換成圖片/顏色/動畫等 僅供參考

lns cte star cat 16px 繼承 encoding 默認啟動 drawable 1.創建自己的主題樣式(style) 在vules資源目錄下的style中創建一個樣式 <style name="MyTheme" parent="Theme

docker+tomcat 啟動非常慢原因之JRE /dev/random阻塞

使用 docker org str 為什麽 操作 ner 環境 random docker+tomcat 啟動時非常慢,一般正常啟動幾十秒的,發現docker+tomcat啟動竟需要幾分鐘,不可思議 根本原因是 SecureRandom 這個 jre 的工具類的問題。那為什

windows下修改tomcat啟動指定的jdk

本機 添加 linu 1.7 jdk1.8 指定 windows tomcat啟動 .com   我本機默認的jdk版本是1.7,裝有tomcat7和tomcat8兩個版本的tomcat。現在是想用tomcat8使用jdk1.8來運行   1.查看tomcat啟動時使用的j

關於Tomcat啟動,長時間停在Initializing Spring root webApplicationContext處的原因

time 現在 cati ack color 處的 問題 style 就會 1.大家肯定經常會遇到這樣的問題,以前啟動tomcat都不會出問題。現在一起動就會卡到Initializing Spring root webApplicationContext處,tomcat會報

Tomcat啟動項目重復加載,導致資源初始化兩次的問題

n) water term clas pps webapps eclips jsb nts 最近在項目開發測試的時候,發現Tomcat啟動時項目重復加載,導致資源初始化兩次的問題 導致該問題的原因: 如下圖:在Eclipse中將Server Locations設置為“Us

hibernate使用setResultTransformer()SQL查詢結果集合

-h cal 們的 gpo ict dds eas find ans 在平時開發中Hibernate提供的hql基本能夠滿足我們的日常需求。但是在有些特殊的情況下,還是需要使用原生的sql,並且希望sql查詢出來的結果能夠綁定到pojo上。hibernate API中的cr

JDK8+tomcat8環境tomcat啟動SecureRandom 非常慢解決辦法

啟動tomcat seconds 安全 rom 評估 這就是 gen cal 什麽 JDK 8 + tomcat8 啟動有時會出現 org.apache.catalina.util.SessionIdGeneratorBase- Creation of SecureRand

tomcat啟動非常慢,啟動 一直卡在Root WebApplicationContext: initialization completed

-c 噪音 odin verbose 兩種 xeon 改變 apach localhost 每次重啟自己的服務tomcat都需要卡住很長時間,每次都是日誌停在 Root WebApplicationContext: initialization completed

使用Barrier分三步大象冰箱

PE san idg 指示 efault ridge private null BE 1 class Program 2 { 3 //構造大象和冰箱 4 private static ElephantsAnd

Tomcat啟動自動運行某程序

指示 timertask 接口 throw time test ref 自定義 pre 項目需要和tmall實現長連接,接收tmall推送的Order消息,然後對消息進行邏輯處理。 目前寫了一個servlet,實現了permit的驗證,然後對tmall進行長連接操作,啟動後

tomcat啟動,內存溢出,Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "main"

通過 per memory tomcat配置 -xmx ... nbsp ont ron 問題原因   通過tomcat啟動項目,也許是因為項目太大,配置的內存不夠用了。老是報內存溢出的問題。 解決辦法 1.選中項目 右鍵 run as -》Run Configu

Tomcat啟動項目重復加載,導致資源初始化兩次!

ati 解決 class onf dep alt doc ack div 一、現象: 每次啟動Tomcat 的時候,工程會被加載兩次 二、原因: 在tomcat/conf/server.xml配置虛擬目錄引起,如下配置: 我們在Host標簽裏配置了appBase="w