微信公衆號搜索【程序媛小莊】 - 沒有白走的路,每一步都算數html
數據庫有不少種,大體有兩類 - 關係型數據庫和非關係型數據庫,關係型數據庫好比有MySQL postgraphSQL等,而Redis就屬於非關係型數據庫,接下來就一塊兒來看看爲啥要使用Redis不是已經有MySQL了嗎?Redis和MySQL又有什麼不一樣呢?web
Redis是一個開源的、內存中的數據結構存儲系統,能夠用做數據庫、緩存和消息中間件,支持多種類型的數據結構,好比strings hashes lists sets sorted_sets
,Redis內置了LUA腳本、LRU驅動事件、事務以及不一樣級別的磁盤持久化,並且能夠經過Sentinel和cluster實現高可用。redis
既然有了MySQL那麼爲啥還要使用Redis呢?傳統的關係型數據庫好比MySQL其實不能適用所欲的場景,好比訪問頻率很是高的頁面等,若是每次都去數據庫進行訪問,很容易把數據庫打崩,所以引入了緩存中間件,Redis此時就是一個緩存的做用。數據庫
因爲Redis是基於內存的,讀寫速度很是快,那麼除了基於內存這一緣由外,Redis還有什麼其餘的緣由讓Redis快的脫穎而出呢?其餘的緣由還有IO多路複用,而且Redis是單線程模式,避免了沒必要要的上下文切換。windows
上面簡單的對Redis進行了介紹,下面就一塊兒來安裝一下redis吧。緩存
Redis官方不建議在windows下使用Redis,所以官方網站並無windows版本能夠下載,若是須要在windows系統上安裝redis,能夠參考下述網站:www.redis.com.cn/redis-insta…bash
在Linux系統下安裝Redis方法以下:微信
下載並安裝markdown
wget https://download.redis.io/releases/redis-6.2.5.tar.gz
tar xzf redis-6.2.5.tar.gz
cd redis-6.2.5
make
複製代碼
執行完make
命令後,redis-6.2.5目錄下會出現編譯後的redis服務程序redis-server
還有用於測試的客戶端程序redis-cli
,兩個程序位於安裝目錄src
目錄下。網絡
啓動redis服務
首先是最簡單的啓動方式 - 使用redis的默認配置。
cd src
./redis_server
複製代碼
固然也能夠經過啓動參數告訴redis使用指定配置文件,redis.conf
是一個默認的配置文件,也能夠根據須要使用本身的配置文件:
cd src
./redis_server ../redis.conf
複製代碼
啓動redis服務進程後,就可使用測試客戶端程序redis-cli
和redis-server
進行交互了,在沒有把redis-server
配置爲後臺啓動時,使用redis-cli
前必定要啓動redis-server
哦~,好比:
cd src
./redis-server # 啓動redis服務
./redis-cli # 啓動redis客戶端
redis> set foo bar
OK
redis> get foo
"bar"
複製代碼
每次啓動客戶端都要啓動服務端很明顯很是不方便,所以能夠將redis-server
配置成爲一個後臺服務,配置方式就是修改配置文件中的daemonize no 改爲 daemonize yes
,一樣能夠設置客戶端的訪問密碼,就是經過配置文件中的requirepass
,經常使用配置文件redis.conf
:
# 默認端口6379
port 6379
# 綁定ip,若是是內網能夠直接綁定 127.0.0.1, 或者忽略, 0.0.0.0是外網
bind 0.0.0.0
# 密碼 abcd123
requirepass abcd123
複製代碼
redis:基於內存,讀寫速度很是快,屬於非關係型數據庫,一般用做緩存中間件。
MySQL:硬盤數據庫,數據持久化,屬於關係型數據庫,一般用來存儲永久數據,而且數據之間有關聯關係的數據。
緩存系統:使用最普遍的就是緩存
計數器:網站訪問量,轉發量,評論數(文章轉發,商品銷量,單線程模型,不會出現併發問題)
消息隊列:發佈訂閱,阻塞隊列實現(簡單的分佈式,blpop:阻塞隊列,生產者消費者)
排行榜:有序集合(閱讀排行,點贊排行,推薦(銷量高的,推薦))
社交網絡:不少特效跟社交網絡匹配,粉絲數,關注數
實時系統:垃圾郵件處理系統,布隆過濾器
文章首發於微信公衆號程序媛小莊,同步於掘金。
碼字不易,轉載請說明出處,走過路過的小夥伴們伸出可愛的小指頭點個贊再走吧(╹▽╹)