回覆列表
  • 1 # 使用者1392011285129

    二者資料同步的關鍵在於mysql資料庫中主鍵,方案是在redis啟動時區mysql讀取所有表鍵值存入redis中,往redis寫資料是,對redis主鍵自增並進行讀取,若mysql更新失敗,則需要及時清除快取及同步redis主鍵。參考程式碼如下:String tbname = "login";//獲取mysql表主鍵值--redis啟動時long id = MySQL.getID(tbname);//設定redis主鍵值--redis啟動時redisService.set(tbname, String.valueOf(id));System.out.println(id);long l = redisService.incr(tbname);System.out.println(l);Login login = new Login();login.setId(l);login.setName("redis");redisService.hmset(String.valueOf(login.getId()), login);boolean b = MySQL.insert("insert into login(id,name) values(" + login.getId()+ ","" + login.getName() + "")");/**** 佇列處理器更新mysql失敗:** 清除快取資料,同時主鍵值自減*/if (!b){redisService.delKeyAndDecr(tbname, "Login:"+String.valueOf(login.getId()));// redisService.delete("Login:"+String.valueOf(login.getId()));//redisService.decr(tbname);}System.out.println(redisService.exists("Login:"+String.valueOf(login.getId())));

  • 中秋節和大豐收的關聯?
  • 最近洗頭頭髮掉的很多是怎麼回事?