redis動態指定切換庫的方式很多,比如註解+aop,本方法是比較簡單的一種,沒有使用註解
重點: 在redis的配置redis.conf檔案中設定notify-keyspace-events ex
1 、redisconfig
package com.oceam.redis;
import com.fasterxml.jackson.annotation.jsonautodetect;
import com.fasterxml.jackson.annotation.propertyaccessor;
import org.springframework.context.annotation.bean;
import org.springframework.context.annotation.configuration;
import org.springframework.data.redis.connection.redisconnectionfactory;
import org.springframework.data.redis.core.redistemplate;
import org.springframework.data.redis.listener.patterntopic;
import org.springframework.data.redis.listener.redismessagelistenercontainer;
import org.springframework.data.redis.serializer.jackson2jsonredisserializer;
import org.springframework.data.redis.serializer.stringredisserializer;
/** * redis配置類
* */
@configuration
public class redisconfig
@bean
redismessagelistenercontainer container(redisconnectionfactory connectionfactory)
}
2、指定庫監聽類
package com.oceam.redis;
import org.springframework.data.redis.connection.message;
import org.springframework.data.redis.connection.messagelistener;
/** * 指定redis庫的key失效時候監聽類
* cdn
* 2020/05/02 16:38
*/public class redi***piredlistener implements messagelistener
}
3、全域性監聽
package com.oceam.redis;
import org.springframework.data.redis.connection.message;
import org.springframework.data.redis.listener.keyexpirationeventmessagelistener;
import org.springframework.data.redis.listener.redismessagelistenercontainer;
import org.springframework.stereotype.component;
/** * 不指定redis資料庫(全域性監聽)
* cdn
* 2020/05/02 16:10
*/@component
public class rediskeyexpirationlistener extends keyexpirationeventmessagelistener
/*** 針對 redis 資料失效事件,進行資料處理
** @param message
* @param pattern
*/@override
public void onmessage(message message, byte pattern)
}
到此為止,監聽redis的key失效和指定庫監聽redis的key失效已將完成
(二) 指定存庫
redis有15個庫,預設是存在第乙個,即小標是0 的庫
/**
* 指定庫操作
** @param key 鍵
* @param value 值
* @param time 時間(秒) time要大於0 如果time小於等於0 將設定無限期
* @param dbindex 要存的庫位置
* @return true成功 false 失敗
*/public boolean setvaluetodatabase(string key, object value, long time, integer dbindex)
if (time > 0) else
//重置為預設的第0個庫
redisconnectionfactory.setdatabase(0);
redistemplate.setconnectionfactory(redisconnectionfactory);
redisconnectionfactory.resetconnection();
return true;
} catch (exception e)
}/**
* desc: 獲取指定庫中的指定key的value
* param:
* @dbindex 資料庫
* author: cdn
* date: 2020/5/2
*/public object getvaluefromredisdatabase(string key, integer dbindex)
Oracle靜態監聽和動態監聽
一 靜態註冊 靜態註冊指例項啟動時讀取listener.ora配置檔案,將例項和服務註冊到監聽程式。無論何時啟動乙個資料庫,預設都有兩條資訊註冊到 中 例項和服務。sid list listener sid list sid desc global dbname ora8 sid name test...
oracle靜態監聽和動態監聽
oracle靜態監聽和動態監聽 一 什麼是註冊?註冊就是將資料庫作為乙個服務註冊到監聽程式。客戶端不需要知道資料庫名和例項名,只需要知道該資料庫對外提供的服務名 就可以申請連線到資料庫。這個服務名可能與例項名一樣,也有可能不一樣。在資料庫伺服器啟動過程中,資料庫伺服器會向監聽程式註冊相應的服務 無論...
linux指定動態庫路徑
通常有兩種方法 1.把動態庫放到系統庫或者在系統庫中做乙個鏈結,這樣編譯和執行都會去系統庫找。這樣容易引起系統庫混亂。2.export ld library path 指定庫搜尋路徑,但是這樣登出再登陸就沒了。還有第三種方法,編譯時使用 wl,rpath,wl,路徑 這樣就能把路徑編譯到可執行檔案裡...