redis簡單安裝與使用

2020-08-08 22:35:24

馬果老師整理

 


問題1:什麼是NOSQL?

Nosql:它是泛指一種:非關係型數據庫

  • 關係型數據庫:指數據是以數據表的方式組織在一起,表與表之間可以建立關聯,例如:sqlserver,mysql,oracle
  • 非關係數據庫:這種數據庫,沒有數據表的概念,數據是儲存在記憶體中的,這種數據庫,讀取數據會更快

問題2:nosql數據庫,用於解決什麼樣的問題?

這種數據庫主要用於解決程式中的高併發問題,實現程式的高可用

  • 高併發:大量請求同時存取,這種情況就稱爲高併發
  • 高可用:當處理請求的伺服器掛了,其他的伺服器還可以正常工作,繼續處理使用者請求(設定伺服器叢集)

問題3:nosql(非關係性數據庫)是否可以取代關係性數據庫?

  • 非關係性數據庫它取代不了關係性數據庫,它只是作爲關係性數據庫的一個補充,一般會與關係性數據庫配合使用

問題4:Nosql數據庫的型別有哪些?

  • 目前使用最多的是:redis,mongodb

redis:它是以鍵值對方式儲存數據,數據是存放在快取中的

redis一般用於儲存比較重要的資訊,它會把這些資訊放在快取中

例如: 使用者名稱、密碼、使用者列表、購物列表

==========================================================

mongodb:它是以文件的方式,存放數據,數據存放在文件中

mongodb一般用於快取不太重要的資訊

例如:聊天的列表、使用者評論

問題5:redis的應用場景

  1. 快取數據(避免頻繁存取數據庫)--------------主要應用場景
  2. 分佈式叢集架構中的session分離。
  3. 任務佇列。(秒殺、搶購、12306等等)

設定redis的設定

  • redis可以在windows、linux下面 下麪設定,但在linux系統中執行效能更好

設定步驟:
1、在linux系統中,聯網安裝c語言的執行環境 (redis是用c語言編寫的)

  • yum install  gcc-c++

2、準備好linux版的redis壓縮包

鏈接:https://pan.baidu.com/s/1fxzi4EMFGR4pYwGrtzPHWQ 
提取碼:wfnc

3、將redis壓縮包發佈到 linux系統下的d91目錄下

4、將redis的壓縮包解壓到:  usr/local/d91

  • tar -xvPf /d91/redis-3.0.0.tar.gz -C  /usr/local/d91

@@@@@@usr/local/d91目錄下,會產生一個資料夾:  redis-3.0.0

5、進入 redis-3.0.0目錄

6、執行命令編譯redis

  • make

7、安裝redis

  • make install PREFIX=/usr/local/d91/redis

@@@@:安裝成功後,在/usr/local/d91目錄下,會產生一個redis資料夾

-----------------到此爲止,redis設定完成 

-----------------如果要使用redis,我們要先啓動redis的伺服器

redis伺服器的啓動方式有兩種:

方式1:前臺啓動

步驟:

1、進入 usr/local/d91/redis/bin執行下列命令

  • ./redis-server
  • 如果採用前臺啓動,啓動後,該視窗就無法再編寫其他命令,如果要編寫其他命令,需要開啓一個新視窗

2、再開啓一個控制檯介面,進入進入 usr/local/d91/redis/bin執行下列命令,啓用redis用戶端

  • ./redis-cli

3、如果要關閉redis服務,可以執行下列命令

  • kill -9 進程號
  • 前臺啓動,比較繁瑣,每一次還要開啓一個新視窗(一般較少使用這種啓動方式)

方式2:後臺啓動 (一般採用這種方式啓動)

步驟:

1、將usr/local/d91/redis-3.0.0目錄下的 redis.conf檔案,複製到 usr/local/d91/redis/bin目錄下

  • cp /usr/local/d91/redis-3.0.0/redis.conf  /usr/local/d91/redis/bin

2、使用vi編輯redis.conf檔案 

將檔案中的 daemonize no  更改爲  daemonize yes

編寫檔案時,要查詢某一個單詞的快捷方式

  • 先輸入 /
  • 輸入要查詢單詞 
  • 回車

3、進入/usr/local/d91/redis/bin啓動redis服務

  • ./redis-server redis.conf

4、進入redis用戶端

  • ./redis-cli

5、退出用戶端

  • exit

一般不用關閉redis服務,只需要讓它在後台執行即可,如果要關閉,只需要查詢出進程號,殺死該進程即可

  • ps -ef | grep redis
  • kill -9 進程號

---------------------------------------------------------------------------------------------

問題1:redis是如何儲存數據的?  redis的數據是存在快取,快取中的數據是如何儲存的?

當啓動redis的時候,系統會將一個名爲:dump.rdb檔案中的數據加到快取中(這個檔案中包含的就是快取的所有數據),當關閉redis的時候,系統就會將快取中的數據,儲存到dump.rdb檔案

問題2:redis儲存數據時,預設採用的是rdb方式,這種方式是定時儲存數據到檔案中

@@@@RDB持久化數據的特點:  定時儲存

預設情況下

  • 修改1條數據,15分鐘纔會自動儲存到檔案--------900秒
  • 修改10條數據,5分鐘纔會自動儲存到檔案--------300秒
  • 修改了10000條數據,1分鐘就會自動儲存到檔案------60秒

rdb存在的問題: 如果修改的數據,儲存時間如果沒有到,程式被終止了,就會導致沒有儲存的數據,會丟失

爲了解決該問題,redis提供了另一種持久化機制 機製:aof

AOF  -----及時儲存

這種方式對數據進行了任何修改,都會馬上將數據持久化到檔案中

將redis的儲存方式更改爲即時儲存的步驟

1、修改redis.conf檔案

  • vi redis.conf

2、修改appendonly屬性的值,將  appendonly no  更改爲  appendonly yes
        
3、重新啓動redis服務

  • 重新啓動以後redis的bin目錄,就會多一個aof結尾的檔案

rdb與aop的儲存方式的不同:

  • rdb是定時儲存,它消耗的資源少一些,但存在數據丟失的風險
  • aof是及時儲存,它消耗的資源會多一些,但可以防止數據丟失

-----------------------------------------------------------------------------------------------------

如何操作redis中的數據

方式1:通過redis-cli命令連線上redis的用戶端,進行操作

方式2:通過安裝redis用戶端工具,可以在windows中,直接操作linux系統中的redis

@@@注意,通過要連線linux下面 下麪的redis,需要將6379埠,在linux防火牆中註冊

  • firewall-cmd --zone=public --add-port=6379/tcp --permanent
  • firewall-cmd --reload

方式3:使用java程式碼連線redis

java程式碼連線redis,一般使用jedis連線

Jedis jedis = new Jedis(ip地址,埠號);

jedis.set(鍵,值);

String 值 = jedis.get(鍵);