Redis數據庫簡介與手工編譯安裝流程
前言
本文從NoSQL誕生的由來引出Redis數據庫,並對其簡單介紹,然後進行Redis手工編譯安裝的流程演示(實驗環境的系統版本爲:Centos7),最後介紹Redis常用的命令工具。
什麼是NoSQL?
NoSQL——non-relational SQL,非關係型數據庫。非關係型數據庫的存儲方式、存儲結構以及使用場景都是完全不同的。隨着網絡發展,關係型數據庫在應對海量數據以及高併發的網絡服務時遇到相關的問題:
1)無法滿足對數據庫的高併發讀寫需求
2)無法滿足對海量數據高效存儲與訪問
3)無法滿足數據庫的高可用與高擴展性
下圖給出關係型數據庫與非關係型數據庫的思維導圖,以便參考:
Redis簡介
Redis(RemoteDictionaryServer, 遠程字典型)是一個開源的、使用 C 語言編寫的 NoSQL數據庫。 Redis 基於內存運行並支持持久化, 採用 key-value(鍵值對) 的存儲形式, 是目前分佈式架構中不可或缺的一環。
其優點與使用場景:
●具有極高的數據讀寫速度, 數據讀取的速度最高可達到 110000 次/s, 數據寫入速度最高可達到 81000 次/s;
●支持豐富的數據類型, 不僅僅支持簡單的 key-value 類型的數據, 還支持 Strings,Lists, Hashes, Sets 及 Ordered Sets 等數據類型操作;
●支持數據的持久化, 可以將內存中的數據保存在磁盤中, 重啓的時候可以再次加載進行使用;
●原子性, Redis 所有操作都是原子性的;
●支持數據備份, 即 master-salve 模式的數據備份;
Redis 作爲基於內存運行的數據庫, 緩存是其最常應用的場景之一, 除此之外, Redis常見應用場景還包括: 獲取最新 N 個數據操作、 排行榜類應用、 計數器應用、 存儲關係、實時分析系統、 日誌記錄等。
Redis手工編譯安裝
1、獲取安裝包資源解壓以及安裝編譯工具
軟件包源:鏈接:https://pan.baidu.com/s/1UoHX-zGOevWnD_NduDkhEQ
提取碼:bvdi
[root@localhost ~]# hostnamectl set-hostname redis_install_install
[root@localhost ~]# su
[root@redis_install ~]# yum install gcc gcc-c++ make -y
[root@redis_install_install ~]# ls #redis_install安裝包
anaconda-ks.cfg initial-setup-ks.cfg redis_install-5.0.7.tar.gz
Desktop Music Templates
Documents Pictures Videos
Downloads Public
[root@redis_install redis_install]# tar zxvf redis_install-5.0.7.tar.gz -C /opt #redis_install源碼包可以直接到官網下載
2、編譯安裝
[root@redis_install redis_install-5.0.7]# make #直接進行make
[root@redis_install redis_install-5.0.7]# make PREFIX=/usr/local/redis_install/ install #指定redis_install目錄並安裝,安裝過程中,更改安裝路徑可以用make PRRFIX=安裝路徑 install
[root@redis_install redis_install-5.0.7]# cd /usr/local/redis_install/
[root@redis_install redis_install]# ls
bin
[root@redis_install redis_install]# cd bin/
[root@redis_install bin]# ls #redis_install的相關命令工具
redis_install-benchmark redis_install-check-aof redis_install-check-rdb redis_install-cli redis_install-sentinel redis_install-server #redis_install-cli是連接終端
[root@redis_install bin]# cd /opt/redis_install-5.0.7/utils/ #回到redis_install源碼包解壓目錄
[root@redis_install utils]# ./install_server.sh #執行腳本進行配置:端口、配置文件目錄、日誌文件目錄等
Welcome to the redis_install service installer
This script will help you easily set up a running redis_install server
Please select the redis_install port for this instance: [6379] #選擇redis_install默認端口,直接回車
Selecting default: 6379
Please select the redis_install config file name [/etc/redis_install/6379.conf] #選擇redis_install默認配置文件名稱,直接回車
Selected default - /etc/redis_install/6379.conf
Please select the redis_install log file name [/var/log/redis_install_6379.log] #選擇默認redis_install日誌文件名稱,直接回車
Selected default - /var/log/redis_install_6379.log
Please select the data directory for this instance [/var/lib/redis_install/6379] #選擇默認接口的默認數據文件,直接回車
Selected default - /var/lib/redis_install/6379
Please select the redis_install executable path [] /usr/local/redis_install/bin/redis_install-server #選擇redis_install可執行文件路徑,需要手動輸入此路徑:/usr/local/redis_install/bin/redis_install-server
Selected config: #查看配置清單
Port : 6379
Config file : /etc/redis_install/6379.conf
Log file : /var/log/redis_install_6379.log
Data dir : /var/lib/redis_install/6379
Executable : /usr/local/redis_install/bin/redis_install-server
Cli Executable : /usr/local/redis_install/bin/redis_install-cli
Is this ok? Then press ENTER to go on or Ctrl-C to abort. 確認無誤後直接回車完成配置
Copied /tmp/6379.conf => /etc/init.d/redis_install_6379
Installing service...
Successfully added to chkconfig!
Successfully added to runlevels 345!
Starting redis_install server...
Installation successful!
3、優化配置與登錄
[root@redis_install utils]# ln -s /usr/local/redis_install/bin/* /usr/local/bin #將redis_install命令創建軟連接,便於系統識別
[root@redis_install utils]# netstat -ntap |grep 6379
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 26085/redis_install-server
[root@redis_install utils]# vim /etc/redis_install/6379.conf #修改配置文件
bind 127.0.0.1 20.0.0.133 #添加本機ip作爲監聽對象
[root@redis_install utils]# /etc/init.d/redis_install_6379 restart #重啓redis_install服務
Stopping ...
redis_install stopped
Starting redis_install server...
[root@redis_install utils]# redis_install-cli -h 20.0.0.133 -p 6379 #成功登陸
20.0.0.133:6379> exit #退出
[root@redis_install utils]#
redis常用命令工具
安裝過程中已經查看了bin目錄下的命令工具了,本文主要介紹redis-cli、redis-benchmark兩個工具。
redis-cli
redis-cli是redis自帶的命令行工具,使用 redis-cli 連接指定數據庫, 連接成功過後會進入提示符爲“ IP 地址: 端口號>” 的數據庫操作環境。進入數據庫後用戶可以輸入各種操作語句對數據庫進行管理。,如執行ping 命令可以檢測 redis 服務是否啓動。若要退出數據庫操作環境, 執行“exit” 或“quit” 命令即可返還原來的 Shell 環境。
[root@redis_install ~]# redis-cli
127.0.0.1:6379> ping
PONG
在進行數據庫連接操作時, 可以通過選項來指定遠程主機上的 Redis 數據庫, 命令語法
爲:
redis-cli -h host -p port -a password
其中, -h 指定遠程主機、 -p 指定 Redis 服務的端口號、 -a 指定密碼。 若不添加任何選項表示, 連接本機上的 Redis 數據庫; 若未設置數據庫密碼可以省略-a 選項。 例如執行以下命令可連接到主機爲 20.0.0.133, 端口爲 6379 的 Redis 數據庫, 並查看 redis 服務的統計信息。
[root@redis_install ~]# redis-cli -h 20.0.0.133 -p 6379
20.0.0.133:6379> info #info後面可以接參數,如:memory等
# Server
redis_version:5.0.7 #redis版本
......#省略後續內容
在數據庫操作環境中, 使用 help 命令可以獲取命令類型的幫助。 其中。 有三種獲取命
令幫助的方式。
help @<group>: 獲取<group>中的命令列表
help <command>: 獲取某個命令的幫助
help <tab>: 獲取可能幫助的主題列表
redis-benchmark
redis-benchmark是官方自帶的用於redis的性能測試工具,可以有效的測試redis服務的性能。基本語法爲:
redis-benchmark [option] [option value]
option:
-h: 指定服務器主機名。
-p: 指定服務器端口。
-s: 指定服務器 socket。
-c: 指定併發連接數。
-n: 指定請求數。
-d: 以字節的形式指定 SET/GET 值的數據大小。
-k: 1=keep alive 0=reconnect 。
-r: SET/GET/INCR 使用隨機 key, SADD 使用隨機值。
-P: 通過管道傳輸<numreq>請求。
-q: 強制退出 redis。 僅顯示 query/sec 值。
--csv: 以 CSV 格式輸出。
-l: 生成循環, 永久執行測試。
-t: 僅運行以逗號分隔的測試命令列表。
-I: Idle 模式。 僅打開 N 個 idle 連接並等待。
實例演示:
[root@redis_install ~]# redis-benchmark -h 20.0.0.133 -p 6379 -c 100 -n 100000
#耐心等待
...... #測試過程
====== MSET (10 keys) ======
100000 requests completed in 1.10 seconds
100 parallel clients
3 bytes payload
keep alive: 1
83.30% <= 1 milliseconds #milliseconds——毫秒
99.76% <= 2 milliseconds
100.00% <= 2 milliseconds
90991.81 requests per second #每秒併發連接數爲90991.81(參考,沒有實際生產環境價值)
總結
redis數據庫的手工編譯安裝相較於MySQL比較簡單,其常用的工具還是需要掌握的。