一.什么是redis?
redis是一個(gè)key-value存儲(chǔ)系統(tǒng)。和Memcached類似,它支持存儲(chǔ)的value類型相對(duì)更多捎泻,包括string(字符串)、list(鏈表)诡曙、set(集合)臀叙、zset(sorted set --有序集合)和hash(哈希類型)。這些數(shù)據(jù)類型都支持push/pop价卤、add/remove及取交集并集和差集及更豐富的操作劝萤,而且這些操作都是原子性的。在此基礎(chǔ)上慎璧,redis支持各種不同方式的排序床嫌。與memcached一樣,為了保證效率胸私,數(shù)據(jù)都是緩存在內(nèi)存中厌处。區(qū)別的是redis會(huì)周期性的把更新的數(shù)據(jù)寫入磁盤或者把修改操作寫入追加的記錄文件,并且在此基礎(chǔ)上實(shí)現(xiàn)了master-slave(主從)同步岁疼。
Redis 是一個(gè)高性能的key-value數(shù)據(jù)庫(kù)阔涉。 redis的出現(xiàn),很大程度補(bǔ)償了memcached這類key/value存儲(chǔ)的不足捷绒,在部 分場(chǎng)合可以對(duì)關(guān)系數(shù)據(jù)庫(kù)起到很好的補(bǔ)充作用洒敏。它提供了Java,C/C++疙驾,C#凶伙,PHP,JavaScript它碎,Perl函荣,Object-C,Python扳肛,Ruby傻挂,Erlang等客戶端,使用很方便挖息。 [1]
Redis支持主從同步金拒。數(shù)據(jù)可以從主服務(wù)器向任意數(shù)量的從服務(wù)器上同步,從服務(wù)器可以是關(guān)聯(lián)其他從服務(wù)器的主服務(wù)器套腹。這使得Redis可執(zhí)行單層樹復(fù)制绪抛。存盤可以有意無意的對(duì)數(shù)據(jù)進(jìn)行寫操作。由于完全實(shí)現(xiàn)了發(fā)布/訂閱機(jī)制电禀,使得從數(shù)據(jù)庫(kù)在任何地方同步樹時(shí)幢码,可訂閱一個(gè)頻道并接收主服務(wù)器完整的消息發(fā)布記錄。同步對(duì)讀取操作的可擴(kuò)展性和數(shù)據(jù)冗余很有幫助尖飞。
二.數(shù)據(jù)庫(kù)為什么使用緩存症副?(轉(zhuǎn))
當(dāng)網(wǎng)站的處理和訪問量非常大的時(shí)候店雅,我們的數(shù)據(jù)庫(kù)的壓力就變大了,數(shù)據(jù)庫(kù)的連接池贞铣,數(shù)據(jù)庫(kù)同時(shí)處理數(shù)據(jù)的能力就會(huì)受到很大的挑戰(zhàn)闹啦,一旦數(shù)據(jù)庫(kù)承受了其最大承受能力,網(wǎng)站的數(shù)據(jù)處理效率就會(huì)大打折扣辕坝。此時(shí)就要使用
1.高并發(fā)處理
2.負(fù)載均衡
3.分布式數(shù)據(jù)庫(kù)
擴(kuò)展(怎么解決高并發(fā)問題)
https://www.cnblogs.com/zyh1994/p/5965402.html
三.如何redis數(shù)據(jù)和mysql數(shù)據(jù)同步窍奋?
redis其讀取速度快,但是redis 怎么和數(shù)據(jù)庫(kù)同步呢圣勒,怎么能把數(shù)據(jù)庫(kù)的所有數(shù)據(jù)存到redis里面费变,能使用戶更快速的查找。
方法1:mysql 同步到redis:解析mysql的binlog圣贸,然后做同步處理挚歧,可以使用的庫(kù)有:open-replicator(https://github.com/whitesock/open-replicator)
方法2:同步redis數(shù)據(jù)到mysql:(https://github.com/leonchen83/redis-replicator)
后來發(fā)現(xiàn),redis讀取速度快吁峻,也沒有必要把所有的數(shù)據(jù)都放到redis里面滑负,redis里面只放使用頻繁,用戶操作量較大的數(shù)據(jù)用含,或者用戶近期使用的數(shù)據(jù)矮慕。解決辦法:
1:讀取數(shù)據(jù)的時(shí)候先從redis里面查,若沒有啄骇,再去數(shù)據(jù)庫(kù)查痴鳄,同時(shí)寫到redis里面,并且要設(shè)置失效時(shí)間
2:存數(shù)據(jù)的時(shí)候要具體情況具體分析缸夹,可以選擇同時(shí)插到數(shù)據(jù)庫(kù)和redis(要是存放到redis中痪寻,最好設(shè)置失效時(shí)間),也可以選擇直接插到數(shù)據(jù)庫(kù)里面虽惭,少考慮一些問題橡类。