redis+mysql基本應用

來源:互聯網
上載者:User
初學redis,想瞭解一下redis+mysql的一些基本應用,一些解決方案,比如最常用的做緩衝機制,一般怎麼去實現呢?

回複內容:

初學redis,想瞭解一下redis+mysql的一些基本應用,一些解決方案,比如最常用的做緩衝機制,一般怎麼去實現呢?

redis做緩衝放在php和mysql之間,就是利用了redis基於記憶體的高速資料讀取特性,也是就是說,對於某些資料,當使用者來訪問你的web頁面的時候,你先去從redis裡面取出來,如果沒有,再去從mysql取,展示給使用者,同時寫入redis,以便下次就能在redis裡面取到了。
虛擬碼:

$name = Redis::get('name');if( !$name ){    //緩衝穿透,在Mysql取出並寫入redis    $name = Mysql::select('name');    Redis::set('name',$name);}//...other code

以上其實就是大多數僅僅拿redis來做緩衝的大概原理。

當然,基於redis豐富的資料結構,還有很多其他使用者,建議查閱相關教程或者文檔。

redis我一般用來存session和快取資料。session很好處理,不說了,說下資料緩衝怎麼做,最近看yii才學到的。

對於一張表的資料,假設有個last_mod_time欄位,每次有資料更新的時候就必須同時更新這個時間,在查詢表中資料的時候,先

select avg(last_mod_time) from table where ...

看看這個同樣條件的集合,avg是不是變了,如果沒變,直接從redis裡面取得快取資料,起到緩衝作用。如果avg變了,那麼將資料從mysql中查出來,並且根據where約束產生一個keyvalue就是資料集,這樣的儲存進redis。大致就是這麼個思路。

不要害怕,和普通架構是一樣的。
就是在php與mysql層面中間加多一個cache緩衝。

Redis自己的例子就給了不少應用。不同的API可以幫你做view,函數,手動等各個層級的cache。另外我用PostgreSQL,可以設定SQL查詢自動cache,MySQL應該也可以。

將中文寫入的redis中再讀取的時候顯示?

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.