redis相關(二)
阿新 • • 發佈:2018-12-28
1 redis持久化
- RDB持久化 資料庫形式
save 表示更改了1個key時間隔900s進行持久化儲存;更改了10個key300s進行儲存 更改10000個key60s進行儲存。 - AOF持久化日誌形式
aof功能的開關 no/yes 日誌名稱
儲存策略
aof日誌尺寸相關
2 redis高可用
拷貝conf檔案修改埠為6380 6381
修改從伺服器conf檔案
下圖可以不設定
啟動6379 6380 6381
檢視各節點資訊 info-- role
配置sentinel
sentinel monitor 這個1代表當叢集中有1個sentinel認為master死了時才能真正認為該master已經不可用了
sentinel down-after-milliseconds mymaster 5000 心跳檢測 5秒
sentinel parallel-syncs mymaster 1 指定了在執行故障轉移時,最多可以有多少個從Redis例項在同步新的主例項,在從Redis例項較多的情況下這個數字越小,同步的時間越長,完成故障轉移所需的時間就越長
啟動 sentinel
3 jedis sentinel
public static void main(String[] args) { // Jedis jedis = new Jedis("192.168.100.106", 6379);//指定Redis服務Host port // jedis.auth(""); //如果Redis服務連線需要密碼 Set<String> sentinels = new HashSet<String>(); sentinels.add("192.168.100.106:26379"); GenericObjectPoolConfig gPoolConfig = new GenericObjectPoolConfig(); gPoolConfig.setMaxIdle(10); gPoolConfig.setMaxTotal(10); gPoolConfig.setMaxWaitMillis(10); gPoolConfig.setJmxEnabled(true); //mymaster為sentinel.conf中配置的 JedisSentinelPool jedisSentinelPool = new JedisSentinelPool("mymaster", sentinels,gPoolConfig); Jedis jedis = jedisSentinelPool.getResource(); // 字串型別 jedis.set("name", "張三"); String value = jedis.get("name"); // getString System.out.println(value); long zongliang = jedis.incr("zongliang"); System.out.println(zongliang); // 列表型別 jedis.lpush("citys", "北京", "上海", "南京"); List<String> citys = jedis.lrange("citys", 0, 2); for (String city : citys) { System.out.print(city); } jedis.close(); // 使用完關閉連線 jedisSentinelPool.close(); }