Redis非關係型(NoSQL)數據庫

關係型數據庫,是創建在關係模型基礎上的數據庫,其藉助於集合代數等數學概念和方法來處理數據庫中的數據。主流的 oracle、DB二、MS SQL Server和mysql都屬於這類傳統數據庫。html

NoSQL數據庫,全稱爲Not Only SQL,意思就是適用關係型數據庫的時候就使用關係型數據庫,不適用的時候也沒有必要非使用關係型數據庫不可,能夠考慮使用更加合適的數據存儲如KV存儲。主要分爲臨時性鍵值存儲(memcached、Redis)、永久性鍵值存儲(ROMA、Redis)、面向文檔的數據庫(MongoDB、CouchDB)、面向列的數據庫(Cassandra、HBase),每種NoSQL都有其特有的使用場景及優勢。mysql

oracle,mysql等傳統的關係數據庫很是成熟而且已大規模商用,爲何還要用NoSQL數據庫呢?主要是因爲隨着互聯網發展,數據量愈來愈大,對性能要求愈來愈高,傳統數據庫存在着先天性的缺陷,即單機(單庫)性能瓶頸,而且擴展困難。這樣既有單機單庫瓶頸,卻又擴展困難,天然沒法知足日益增加的海量數據存儲及其性能要求,因此纔會出現了各類不一樣的NoSQL產品,NoSQL根本性的優點在於在雲計算時代,簡單、易於大規模分佈式擴展,而且讀寫性能很是高。redis

下面分析下二者的特色,及優缺點:sql

關係型數據庫數據庫

<1>關係數據庫的特色是:服務器

- 數據關係模型基於關係模型,結構化存儲,完整性約束。數據結構

- 基於二維表及其之間的聯繫,須要鏈接、並、交、差、除等數據操做。併發

- 採用結構化的查詢語言(SQL)作數據讀寫。oracle

- 操做須要數據的一致性,須要事務甚至是強一致性。分佈式

<2>優勢:

- 保持數據的一致性(事務處理)

- 能夠進行join等複雜查詢。

- 通用化,技術成熟。

<3>缺點:

- 數據讀寫必須通過sql解析,大量數據、高併發下讀寫性能不足。

- 對數據作讀寫,或修改數據結構時須要加鎖,影響併發操做。

- 沒法適應非結構化存儲。

- 擴展困難。

- 昂貴、複雜。

NoSQL數據庫

<1>NoSQL數據庫的特色是:

- 非結構化的存儲。

- 基於多維關係模型。

- 具備特有的使用場景。

<2>優勢:

- 高併發,大數據下讀寫能力較強。

- 基本支持分佈式,易於擴展,可伸縮。

- 簡單,弱結構化存儲。

<3>缺點:

- join等複雜操做能力較弱。

- 事務支持較弱。

- 通用性差。

- 無完整約束複雜業務場景支持較差。

 

step1:下載

  • 當前redis最新穩定版本是4.0.9
  • wget http://download.redis.io/releases/redis-5.0.5.tar.gz

step2:解壓

  tar xzf redis-5.0.5.tar.gz

step3:移動,放到usr/local⽬錄下

  sudo mv ./redis-5.0.5 /usr/local/redis/

step4:進⼊redis⽬錄

  cd /usr/local/redis/

step5:生成(因爲redis是用C語言寫的,因此要用make命令進行編譯)

  sudo make

step6:測試,這段運⾏時間會較⻓

  sudo make test

        出現報錯:You need tcl 8.5 or newer in order to run the Redis test 

        

解決方式
安裝tcl

wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz
sudo tar xzvf tcl8.6.1-src.tar.gz -C /usr/local/
cd /usr/local/tcl8.6.1/unix/
sudo ./configure
sudo make
sudo make install

step7:安裝,將redis的命令安裝到/usr/local/bin/⽬錄

  sudo make install

step8:安裝完成後,咱們進入目錄/usr/local/bin中查看

  cd /usr/local/bin
  ls -all

  • redis-server redis服務器
  • redis-cli redis命令行客戶端
  • redis-benchmark redis性能測試工具
  • redis-check-aof AOF文件修復工具
  • redis-check-rdb RDB文件檢索工具

step9:配置⽂件,移動到/etc/⽬錄下

  配置⽂件⽬錄爲/usr/local/redis/redis.conf

  sudo cp /usr/local/redis/redis.conf /etc/redis/

  

核心配置選項

  • 綁定ip:若是須要遠程訪問,可將此⾏註釋,或綁定⼀個真實ip
    •   bind 127.0.0.1
  • 端⼝,默認爲6379port 6379
    •   port 6379
  • 是否以守護進程運⾏

    • 若是以守護進程運⾏,則不會在命令⾏阻塞,相似於服務
    • 若是以⾮守護進程運⾏,則當前終端被阻塞
    • 設置爲yes表示守護進程,設置爲no表示⾮守護進程
    • 推薦設置爲yes
      •   daemonize yes
  • 數據⽂件

    •   dbfilename dump.rdb

  • 數據⽂件存儲路徑
    •   dir /var/lib/redis
  • ⽇志⽂件
    •   logfile "/var/log/redis/redis-server.log"
  • 數據庫,默認有16個
    •   database 16
  • 主從複製,相似於雙機備份。
    •   slaveof

 參考資料:redis配置信息http://blog.csdn.net/ljphilp/article/details/52934933

Redis服務器端和客戶端的命令

服務器端

    • 服務器端的命令爲redis-server

    • 可使⽤help查看幫助⽂檔

      •   redis-server --help

    • 我的習慣
      • ps aux | grep redis 查看redis服務器進程
        sudo kill -9 pid 殺死redis服務器
        sudo redis-server /etc/redis/redis.conf 指定加載的配置文件

客戶端

  • 客戶端的命令爲redis-cli
  • 可使⽤help查看幫助⽂檔
    •   redis-cli --help
  • 鏈接redis

    •   redis-cli

  運⾏測試命令

    ping

  

  • 切換數據庫

  • 數據庫沒有名稱,默認有16個,經過0-15來標識,鏈接redis默認選擇第一個數據庫

    •   select 10

Mac 上安裝 Redis:

相關文章
相關標籤/搜索