應用redis實現資料的讀寫,同時利用佇列處理器定時將資料寫入mysql,此種情況存在的問題主要是如何保證mysql與redis的資料同步,
二者資料同步的關鍵在於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)
system.out.println(redisservice.exists("login:"+string.valueof(login.getid())));
system.out.println(redisservice.get(tbname));
redis 與 資料庫(Mysql)同步
最近接觸 redis,發現其讀取速度快,突然想到,redis 怎麼和資料庫同步呢,怎麼能把資料庫的所有資料存到redis裡面,能使使用者更快速的查詢。方法1 mysql 同步到redis 解析mysql的binlog,然後做同步處理,可以使用的庫有 open replicator 方法2 同步red...
redis 與 資料庫(Mysql)同步
最近接觸 redis,發現其讀取速度快,突然想到,redis 怎麼和資料庫同步呢,怎麼能把資料庫的所有資料存到redis裡面,能使使用者更快速的查詢。方法1 mysql 同步到redis 解析mysql的binlog,然後做同步處理,可以使用的庫有 open replicator 方法2 同步red...
資料庫 redis與redis操作
網上搜了以下redis的入門操作,全tm的關於怎麼安裝配置和效能特點的。基本的crud create,read,update,delete 就誰也沒說,簡直氣瘋了。先記錄下自己常用的命令,後面再回頭整理乙份常用的操作文件。命令列登入客戶端 redis cli 登入 auth password 顯示全...