1. 程式人生 > >redis相關(二)

redis相關(二)

1 redis持久化

  1. RDB持久化 資料庫形式
    save 表示更改了1個key時間隔900s進行持久化儲存;更改了10個key300s進行儲存 更改10000個key60s進行儲存。rdb
  2. AOF持久化日誌形式
    aof功能的開關 no/yes 日誌名稱
    aof開啟
    儲存策略
    aof時間儲存
    aof日誌尺寸相關
    aof日誌儲存形式

2 redis高可用
拷貝conf檔案修改埠為6380 6381
拷貝conf檔案
修改從伺服器conf檔案
slaveof
下圖可以不設定
blind
啟動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
啟動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();
	}