第一章 認識Redis 【Redis入門教程】

image

Redis入門教程目錄【Redis入門教程目錄】redis

簡介

Redis是由C語言編寫的開源、基於內存、支持多種數據結構、高性能的Key-Value數據庫。數據庫

特性

速度快

首先Redis是將數據儲存在內存中的,一般狀況下每秒讀寫次數達到千萬級別其次Redis使用ANSI C編寫,由於C語言接近操做系統,因此Redis的執行效率很高。最後Redis的處理網絡請求部分採用的是單線程,若是想充分利用CPU資源的話,能夠多開幾個Redis實例來達到目的,爲何單線程仍是速度快的緣由呢?咱們知道Redis的讀寫都是基於內存的,讀寫速度都是很是快的,不會出現須要等待很長時間,因此瓶頸並不會出如今請求讀寫上,因此不必使用多線程來利用CPU,若是使用多線程的話(線程數>CPU數狀況下),多線程的建立、銷燬、線程切換、線程競爭等開銷所須要的時間會比執行讀寫所損耗的時間還多,那就南轅北轍了,固然這是在數據量小的時候纔會這樣,若是數據量到達必定量級了,那確定是多線程比單線程快(線程數<=CPU數狀況下)。 bash

image

持久化

Redis能夠經過RDBAOF兩種方式將數據持久化到磁盤上,其中這兩種方式的區別以下:服務器

  • RDB:是在指定的時間間隔內將內存中的數據經過異步生成數據快照而且保存到磁盤中。
  • AOF:相對於RDB方式,AOF方式的持久化更細粒度,把每次數據變化(寫、刪除操做)都記錄AOF文件中,其中AOF又能夠配置爲always即實時將記錄寫到AOF文件中,everysec每隔一秒將記錄寫到AOF文件中,no由系統決定什麼時候將記錄寫到AOF文件中。

多種數據結構

Redis支持五種基本的數據結構,分別是String(字符串),Hash(哈希),List(列表),Set(集合),Zset(即Sorted Set有序集合),這些數據結構類型和咱們使用的開發語言的數據結構類型實際上是相對應的。 網絡

image

多語言客戶端

Redis支持多種語言,諸如Ruby,Python, Twisted Python, PHP, Erlang, Tcl, Perl, Lua, Java, Scala, Clojure等。數據結構

功能豐富

Redis支持發佈訂閱、Lua腳本、事務、Pipeline等功能。多線程

主從複製

在Redis中,用戶能夠經過執行SLAVEOF命令或者SLAVEOF選項,讓從服務器去複製主服務器,爲高可用分佈式提供了基礎。 架構

image

高可用和集羣

  1. 高可用
    有了主從複製以後的實現以後,若是想對服務器進行監控,那麼在Redis2.6之後提供了一個Sentinel(哨兵機制)。顧名思義,哨兵的含義就是監控Redis系統的運行狀態,能夠啓動多個哨兵,去監控Redis數據庫的運行狀態。其功能有如下兩點:
    a.監控全部節點數據庫是否正常運行
    b.主數據庫出現故障時,能夠經過自動投票機制,在從數據庫選舉出新的主數據庫,實現將從數據庫轉爲主數據庫的自動切換。
  2. 集羣
    Redis在3.0版本正式引入了Redis-Cluster集羣這個特徵。Redis-Cluster採用無中心架構,每一個節點保存完整的數據和整個集羣的狀態,每一個節點都和其餘全部節點鏈接。
    image

安裝和啓動

使用wget命令下載Redis異步

wget http://download.redis.io/releases/redis-5.0.3.tar.gz
複製代碼

解壓Redis壓縮包分佈式

tar xzf redis-5.0.3.tar.gz
複製代碼

進入到Redis的文件夾

cd redis-5.0.3
複製代碼

編譯Redis

make
複製代碼

這樣咱們的Redis就編譯好了,爲了能全局使用Redis的命令,咱們還須要執行安裝命令,將可執行文件安裝到環境變量中。

make install
複製代碼

這樣Redis的安裝就完成了,咱們來啓動Redis,其中Redis的啓動有三種方式

  1. 直接啓動 直接執行redis-server便可啓動Redis,這個方式啓動實際上就是讀取Redis的默認配置啓動。
  2. 動態參數啓動 執行redis-server --port 6380便可指定端口號啓動Redis,更多參數能夠參考官方的文檔。
  3. 配置文件啓動 執行redis-server config.conf便可指定名爲config.conf的配置文件進行啓動Redis。
相關文章
相關標籤/搜索