1. 程式人生 > >Redis和memcahce的區別【轉】

Redis和memcahce的區別【轉】

tex align 區別 匹配 mar 這一 under epoll 掃描

先給大家講一個基本知識點:數據庫分類大致分為兩類,關系型數據庫和非關系型數據庫。如果詳細區分的話,還可以繼續分下去。

Redis不僅僅是緩存數據庫

面試的時候,很多人會問,Redis和memcahce的區別?

memcache是一個純緩存的鍵值數據庫,而Redis是一個非關系型的數據庫。

兩者的差異較大,卻仍然大部分的人問二者的區別?因為很多人對Redis的應用,主要是和memcache一樣,作為鍵值緩存數據庫來用的。

要知道,Redis不僅僅是緩存數據庫,接下來,我們要深入Redis的應用場景,探尋它能為我們來解決什麽樣的問題。

6大Redis應用場景

1.緩存

緩存肯定是大家應用場景最多的一個方向,幾乎現在所有的中大型網站,都用到了緩存。

合理的使用緩存不但能提高網頁的訪問速度,也能夠降低後端數據庫的壓力。

根據數據類型和實際使用情況,設置靈活的鍵值過期策略,又可以保障數據的有效性,所以用在緩存的場合非常多。

2.計數器

好多不熟悉業務或者開發的運維同學可能會問,計數器究竟是什麽?

我們可以通過我們實際的例子來說明,比如博主寫了一篇博文,有多少人來瀏覽,51CTO都會有記錄。

那麽這個記錄怎麽來做,每次瀏覽的話,這個記錄都會+1 ,當瀏覽人數太多的時候,或者文章基數較大的時候,每次都去數據庫來操作讀寫這個數據,肯定對後端數據庫會有較大的壓力。

如果我們使用Redis的incr來實現這個功能,在內存中來計數,不但性能好,還可以減輕後端數據庫的壓力。所以是Redis!

3.排行榜

比如音樂或者某比賽排行榜,我們可以使用音樂名作為元素,使用播放次數作為分值。

如果使用Redis的zadd來實現這個功能,使用zrevrange 來按照分值獲取前10名或者50名的歌曲,或者獲取歌曲排名,都是操作比較容易的,試想一下這種範圍取值,如果使用Mysql來操作,一般會全表掃描,對I/O、數據庫都是壓力,所以是Redis。

4.定位功能(3.2開始支持)

Redis的 GEO特性,我們可以通過提前輸入具體的地理位置信息,經緯度一些主要內容,在使用時,可以快讀定位到APP使用者的位置,以及位置之間的距離等。

5.簡單的消息系統

在日常的應用開發中,消息隊列的使用還是比較常見的,Redis也有阻塞隊列的功能。能夠讓程序在執行時被另一個程序添加到隊列。

6.交友

我們可以存儲好友的信息,比如愛好、興趣等,通過使用Set集合的差查找愛好不同,或者愛好相同的點,增加交友匹配度等。

當然,Redis的實際應用還遠不止這些,既然這個數據庫可以在我們實際的應用中,解決如此多的痛點問題,也有如此多的應用場景,那麽肯定使用的公司一定比較多,為了提高我們自身的能力,或者競爭力,能夠更好的解決或者運維好這一款數據庫,我當然需要深入的去學習。

技術分享圖片

Redis最顯著的優勢

1.速度快

Redis的開發基於C語言實現,網絡上使用epoll解決高並發的問題,單線程又避免不必要的上下文切換。C語言和貼近系統,數據又放在內存中。所以速度肯定快。

2.支持多種數據類型

Redis不僅僅是key - value的存在,還可以支持LIst、String、Hash、Set、Zset 數據類型,可以滿足我們大部分的需求。

技術分享圖片

通過這個圖呢,我們大致介紹了Redis的功能、場景、優點等信息。那麽既然Redis在我們工作中,有這麽多的地方可以用到,我們更應該需要深入的去學習和了解,方便我們在以後的工作中,更加的得心應手。基於以上的考慮,所以我講解內容選擇的時候: 所以是Redis。

接住這份Redis運維秘籍

1.總結知識點

Redis運維秘籍裏,可以看到Redis在學習過程中重要的一些知識點,而不是通篇的按照Redis的官方文檔來教科書式的宣讀,我會把工作中常用的進行知識點的總結,只講幹貨,不湊篇幅。

2.理論+實踐

魯迅先生說:“實踐是檢驗真理的唯一標準”!我不但對底層知識、原理進行講解和總結,也同時進行實戰的操作,通過實際操作來驗證這些理論,可以加深印象,也更方便我們的理解。

3.經驗總結與分享

我將在實戰和優化中,講解本人實際在運用過程中使用的遇到的一些“坑”。滿滿的坑,當我們從坑裏爬出來的時候,我們就是強者。

轉自

51CTO https://mp.weixin.qq.com/s?__biz=MzAwMDEzNTc1Mw==&mid=2247484161&idx=1&sn=51319e81cd2f099b865a3d0f9e03e7e7&chksm=9aecc427ad9b4d3188efd105558a6ac0a2bfaf782f5777db903d830c37527a9675e2bf0eb700&mpshare=1&scene=23&srcid=03153ovLXgGHuWQ6tQgO89mH#rd

Redis和memcahce的區別【轉】