A. redis集群主機故障後,java怎麼獲取新master和slaver
一、配置 僅需要在slave node上修改配置: 找到slaveof這行,參考下面的修改(填上master node的Ip和埠就完事了) slaveof 10.6.144.155 7030 另外注意下 slave-read-only yes 這行,這表示slave只讀不寫,也是推薦設置 二、驗證 啟動master/s...
B. java使用redis時不時的報沒有可用的鏈接
出現這種問題從以下幾個方面排查:
1、網路不穩定,這種情況只會出現在調用機器和redis伺服器不在同一台機器的情況,如果調用本機redis請忽略。
2、使用了連接池,並發較大,連接池配置的最大連接數過小,客戶端從連接池獲取連接時,如果沒有可用連接就阻塞當前線程直到有可用連接,等待時間超過配置的超時時間後會拋出連接超時異常。
3、同樣是使用連接池的情況,從連接池獲取連接,使用完成後沒有釋放連接,導致連接池鏈接耗盡。
4、還有可能是硬體性能瓶頸,比如單節點的redis,但是需要支持特別大的並發量,無論怎麼優化配置都是徒勞的,這種情況就需要考慮做讀寫分離,搭建redis集群等,
C. rediscluster 的集群怎麼用java進行運維
一:關於redis cluster
1:redis cluster的現狀
目前redis支持的cluster特性
1):節點自動發現
2):slave->master 選舉,集群容錯
3):Hot resharding:在線分片
4):進群管理:cluster xxx
5):基於配置(nodes-port.conf)的集群管理
6):ASK 轉向/MOVED 轉向機制.
2:redis cluster 架構
1)redis-cluster架構圖
架構細節:
(1)所有的redis節點彼此互聯(PING-PONG機制),內部使用二進制協議優化傳輸速度和帶寬.
(2)節點的fail是通過集群中超過半數的節點檢測失效時才生效.
(3)客戶端與redis節點直連,不需要中間proxy層.客戶端不需要連接集群所有節點,連接集群中任何一個可用節點即可
(4)redis-cluster把所有的物理節點映射到[0-16383]slot上,cluster 負責維護node<->slot<->value
2) redis-cluster選舉:容錯
D. 怎樣使用redis緩存,java代碼
應用Redis實現數據的讀寫,同時利用隊列處理器定時將數據寫入mysql。
同時要注意避免沖突,在redis啟動時去mysql讀取所有表鍵值存入redis中,往redis寫數據時,對redis主鍵自增並進行讀取,若mysql更新失敗,則需要及時清除緩存及同步redis主鍵。
這樣處理,主要是實時讀寫redis,而mysql數據則通過隊列非同步處理,緩解mysql壓力,不過這種方法應用場景主要基於高並發,而且redis的高可用集群架構相對更復雜,一般不是很推薦。
E. redis集群 java怎麼做分布式訪問
package project1_Thread;
public class Threads {
public static void main(String[] args) {
// TODO Auto-generated method stub
for(int i=0;i<10;i++){
System.out.println("main begins:");
}
Threads1 nt1 = new Threads1();
Threads2 nt2 = new Threads2();
nt1.start();
nt2.start();
for(int i=0;i<10;i++){
System.out.println("Main End");
}
}
F. java操作redis集群問題CLUSTERDOWN The cluster is down. Use CLUSTER INFO for more information
java操作redis集群問題CLUSTERDOWN The cluster is down. Use CLUSTER INFO for more information,配置沒有配置好的問題。
G. 如何用java實現基於JedisCluster對象的連接池
基於redis集群的java小demo,用於從hadoop中讀取文件,然後寫入redis集群,但是單個JedisCluster連接在生產中不夠效率,不知道哪位大神能給點基於JedisCluster的連接池示例?
下面是我的一點代碼
`static {
URL.setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory());
}
public static void main(String[] args) throws Exception {
writeRedis("hdfs://mycluster/test/test.txt",new int[]{0});
//writeRedis(initConfig());
}
public static void writeRedis(String inpath, int[] keyIndex) throws Exception {
InputStream in = new URL(inpath).openStream();// 輸入流 ]
LineIterator br = org.apache.commons.io.IOUtils.lineIterator(in, "utf8");// 指定輸入流與字元編碼
JedisCluster cluster = RedisUtils.getClusterConn();
String[] line = null;
while (br.hasNext()) {
String s = br.next();
line = RedisUtils.split(s);
String key = "";
for (int i = 0; i < keyIndex.length; i++) {
key += line[keyIndex[i]];// TODO:如果有必要,添加分隔符
}
cluster.setnx(key, s);
}
RedisUtils.clusterClose(cluster);
}`
H. redis主從集群 主掛掉 java怎樣調用從
從機的redis命令行輸入slaveofnoone轉換為主機,然後要麼修改主機ip要麼修改java程序中的主機ip地址。
另外建議看下redis sentinel 主從切換(failover)解決方案
I. 豌豆莢的codis redis集群可否用java調用
可以的,任何支持redis協議的客戶端都ok 你基本上可以把 codis redis集群 當做單機的redis使用. 只要協議是OK的與語言沒有關系。
J. java web開發緩存方案,ehcache和redis哪個更好
Ehcache
在java項目廣泛的使用。它是一個開源的、設計於提高在數據從RDBMS中取出來的高花費、高延遲採取的一種緩存方案。正因為Ehcache具有健壯性(基於java開發)、被認證(具有apache 2.0 license)、充滿特色(稍後會詳細介紹),所以被用於大型復雜分布式web application的各個節點中。
1. 夠快
Ehcache的發行有一段時長了,經過幾年的努力和不計其數的性能測試,Ehcache終被設計於large, high concurrency systems.
2. 夠簡單
開發者提供的介面非常簡單明了,從Ehcache的搭建到運用運行僅僅需要的是你寶貴的幾分鍾。其實很多開發者都不知道自己用在用Ehcache,Ehcache被廣泛的運用於其他的開源項目
比如:hibernate
3.夠袖珍
關於這點的特性,官方給了一個很可愛的名字small foot print ,一般Ehcache的發布版本不會到2M,V 2.2.3 才 668KB。
4. 夠輕量
核心程序僅僅依賴slf4j這一個包,沒有之一!
5.好擴展
Ehcache提供了對大數據的內存和硬碟的存儲,最近版本允許多實例、保存對象高靈活性、提供LRU、LFU、FIFO淘汰演算法,基礎屬性支持熱配置、支持的插件多
6.監聽器
緩存管理器監聽器 (CacheManagerListener)和 緩存監聽器(CacheEvenListener),做一些統計或數據一致性廣播挺好用的
如何使用?
夠簡單就是Ehcache的一大特色,自然用起來just so easy!
redis
redis是在memcache之後編寫的,大家經常把這兩者做比較,如果說它是個key-value store 的話但是它具有豐富的數據類型,我想暫時把它叫做緩存數據流中心,就像現在物流中心那樣,order、package、store、classification、distribute、end。現在還很流行的LAMP PHP架構 不知道和 redis+mysql 或者 redis + mongodb的性能比較(聽群里的人說mongodb分片不穩定)。
先說說reidis的特性
1. 支持持久化
redis的本地持久化支持兩種方式:RDB和AOF。RDB 在redis.conf配置文件里配置持久化觸發器,AOF指的是redis沒增加一條記錄都會保存到持久化文件中(保存的是這條記錄的生成命令),如果不是用redis做DB用的話還會不要開AOF ,數據太龐大了,重啟恢復的時候是一個巨大的工程!
2.豐富的數據類型
redis 支持 String 、Lists、sets、sorted sets、hashes 多種數據類型,新浪微博會使用redis做nosql主要也是它具有這些類型,時間排序、職能排序、我的微博、發給我的這些功能List 和 sorted set 的強大操作功能息息相關
3.高性能
這點跟memcache很想像,內存操作的級別是毫秒級的比硬碟操作秒級操作自然高效不少,較少了磁頭尋道、數據讀取、頁面交換這些高開銷的操作!這也是NOSQL冒出來的原因吧,應該是高性能
是基於RDBMS的衍生產品,雖然RDBMS也具有緩存結構,但是始終在app層面不是我們想要的那麼操控的。
4.replication
redis提供主從復制方案,跟mysql一樣增量復制而且復制的實現都很相似,這個復制跟AOF有點類似復制的是新增記錄命令,主庫新增記錄將新增腳本發送給從庫,從庫根據腳本生成記錄,這個過程非常快,就看網路了,一般主從都是在同一個區域網,所以可以說redis的主從近似及時同步,同事它還支持一主多從,動態添加從庫,從庫數量沒有限制。 主從庫搭建,我覺得還是採用網狀模式,如果使用鏈式(master-slave-slave-slave-slave·····)如果第一個slave出現宕機重啟,首先從master 接收 數據恢復腳本,這個是阻塞的,如果主庫數據幾TB的情況恢復過程得花上一段時間,在這個過程中其他的slave就無法和主庫同步了。
5.更新快
這點好像從我接觸到redis到目前為止 已經發了大版本就4個,小版本沒算過。redis作者是個非常積極的人,無論是郵件提問還是論壇發帖,他都能及時耐心的為你解答,維護度很高。有人維護的話,讓我們用的也省心和放心。目前作者對redis 的主導開發方向是redis的集群方向。
所以如果希望簡單就用ehcache,如果開發任務比較復雜,希望得到比較多的支持什麼的就redis