博文目錄:
平城ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!
一、關系型數(shù)據(jù)庫與非關系型數(shù)據(jù)庫的區(qū)別。
二、Redis數(shù)據(jù)庫介紹。
三、Redis的安裝部署。
四、Redis命令工具及常用命令
五、Redis群集配置實例。
一、關系型數(shù)據(jù)庫與非關系型數(shù)據(jù)庫的區(qū)別:
Redis數(shù)據(jù)庫是一個非關系型數(shù)據(jù)庫,和oracle、mysql、sql server等關系型數(shù)據(jù)庫不是同一類型。NoSQL是非關系型數(shù)據(jù)庫的總稱,主流的NoSQL數(shù)據(jù)庫有redis、MongBD等。NoSQL的存儲方式、存儲結構以及使用的場景都是完全不同的。NoSQL數(shù)據(jù)庫憑借著其非關系型、分布式、開源和橫向擴展等優(yōu)勢,被認為是下一代數(shù)據(jù)庫產(chǎn)品。
NoSQL可以解決關系型數(shù)據(jù)庫產(chǎn)生的三高問題:
- 對數(shù)據(jù)庫高并發(fā)讀寫需求。
- 對海量數(shù)據(jù)高效存儲與訪問需求。
- 對數(shù)據(jù)庫高可擴展性與高可用性需求。
關系型數(shù)據(jù)庫和非關系型數(shù)據(jù)庫都有各自的特點與應用場景,兩者精密結合將會給Web 2.0的數(shù)據(jù)庫發(fā)展帶來新的思路。讓關系型數(shù)據(jù)庫關注在關系上,非關系型數(shù)據(jù)庫關注在存儲上。
二、redis數(shù)據(jù)庫介紹:
Redis是一個開源的、使用C語言編寫、支持網(wǎng)絡、可基于內(nèi)存也可持久化的日志類型、key-value(鍵值對)數(shù)據(jù)庫,是目前分布式架構中不可或缺的一環(huán)。
Redis服務器是單進程模型,也就是在一臺服務器上可以同時啟動多個Redis進程,而Redis的實際處理速度則完全依靠主進程的執(zhí)行效率。若在服務器上只運行一個Redis進程,當多個client同時訪問時,服務器的處理能力會有一定程度的下降;若在同一臺服務器上開啟多個Redis進程,Redis在提高并發(fā)處理能力的同時會給服務器的CPU造成很大的壓力。也就是說,在實際生產(chǎn)環(huán)境中,需要根據(jù)實際的需求來決定開啟多少個Redis進程。若對高并發(fā)要求更高些,可能會考慮在同一臺服務器上開啟多個進程;若CPU資源比較緊張,采用單進程即可。
Redis具有以下幾個有點:
- 具有極高的讀寫速度,數(shù)據(jù)讀取的速度最高可達到110000次/s,數(shù)據(jù)的寫入速度最高可以達到81000次/s。
- 支持豐富的數(shù)據(jù)類型,不僅僅支持簡單的key-value數(shù)據(jù)類型,還支持strings、lists、hashes、sets及ordered sets等數(shù)據(jù)類型操作。
- 支持數(shù)據(jù)的持久化,可以將內(nèi)存中的數(shù)據(jù)保存在磁盤中,重啟的時候可以再次加載進行使用。
- 原子性,Redis所有操作都是原子性的。
- 支持數(shù)據(jù)備份,即master-salve模式的數(shù)據(jù)備份。
Redis是基于內(nèi)存運行的數(shù)據(jù)庫,緩存是它比較常應用的場景之一,除此之外,Redis常見應用場景還包括獲取最新N個數(shù)據(jù)的操作、排行榜應用、計數(shù)器應用、存儲關系、實時分析系統(tǒng)、日志記錄等。
三、Redis的安裝部署:
需先去Redis官網(wǎng)下載相應的源碼包或從這個Redis下載鏈接 (提取碼:z0da)直接下載。
[root@redis ~]# tar zxf redis-5.0.5.tar.gz -C /usr/src/ #解包
[root@redis ~]# cd /usr/src/redis-5.0.5/ #切換至解壓出來的目錄
[root@redis redis-5.0.5]# make && make install #無需./configure配置,直接安裝即可。
[root@redis redis-5.0.5]# cd /usr/src/redis-5.0.5/utils/ #設置相關配置文件
[root@redis utils]# ./install_server.sh #執(zhí)行該腳本文件,相關配置文件就生成了。
#接下來是在指定各種配置文件的存放目錄,一路按回車確認即可。
[root@redis utils]# cd /etc/init.d/ #優(yōu)化控制服務啟停
[root@redis init.d]# mv redis_6379 redis
[root@redis init.d]# chkconfig --add redis #添加為系統(tǒng)服務。
[root@redis init.d]# systemctl restart redis
[root@redis init.d]# systemctl restart redis
[root@redis init.d]# systemctl restart redis
[root@redis init.d]# netstat -anpt | grep redis #redis默認監(jiān)聽6379和群集端口16379
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 7098/redis-server 1
#現(xiàn)在只是安裝了redis,并沒有配置群集,所以16379端口并沒有監(jiān)聽。
[root@redis init.d]# vim /etc/redis/6379.conf #查看redis配置文件
bind 127.0.0.1 192.168.1.1 #監(jiān)聽的主機地址
appendonly yes #改為“yes”,以便在每次更新操作后進行日志記錄,進行數(shù)據(jù)同步寫入
port 6379 #監(jiān)聽端口
daemonize yes #啟用守護進程
pidfile /var/run/redis_6379.pid #指定PID文件
loglevel notice #日志級別
logfile /var/log/redis_6379.log #指定日志文件
上面為部分配置參數(shù),主配置中還有很多更多的配置參數(shù),具體可參考如下:
四、Redis命令工具及常用命令:
Redis軟件提供了很多命令工具,在安裝Redis時,所包含的軟件工具同時會被安裝到系統(tǒng)中,在系統(tǒng)中可以直接使用,這些命令工具的作用如下所示:
下面是 redis-cli和redis-benchmark工具的用法:
1、redis-cli命令行工具:
redis-cli命令可以連接指定的數(shù)據(jù)庫,可以用“-h”指定遠程主機;“-p指定服務的端口號”,若設置了密碼,可以用“-a”指定密碼,若沒設置連接密碼,則可以省略“-a”選項。如下:
[root@redis redis]# redis-cli -h 192.168.1.1 -p 6379
#若端口號默認監(jiān)聽6379,也可省略-p選項。
192.168.1.1:6379>
在數(shù)據(jù)庫操作環(huán)境中,使用help命令可獲取命令類型的幫助。其中,有三種獲取命令幫助的方式。
示例如下:
192.168.1.1:6379> help @list #查看所有與list數(shù)據(jù)類型相關的命令
BLPOP key [key ...] timeout
summary: ck until one is available
since: 2.0.0
BRPOP key [key ...] timeout
summary: block until one is available
since: 2.0.0
...........................
192.168.1.1:6379> help set #查看set命令的命令幫助。
SET key value [expiration EX seconds|PX milliseconds] [NX|XX]
summary: Set the string value of a key
since: 1.0.0
group: string
2、redis-benchmark壓力測試工具:
redis-benchmark是官方自帶的Redis性能測試工具,可以有效地測試Redis服務的性能。該工具的常用選項如下:
用法示例:
[root@redis redis]# redis-benchmark -h 192.168.1.1 -p 6379 -c 100 -n 100000
#向指定IP地址及端口的Redis服務器發(fā)送100個并發(fā)連接與100000個請求測試性能。
.........................
====== MSET (10 keys) ======
100000 requests completed in 1.74 seconds
100 parallel clients
3 bytes payload
keep alive: 1
23.94% <= 1 milliseconds
98.02% <= 2 milliseconds
99.64% <= 3 milliseconds
99.76% <= 4 milliseconds
99.82% <= 5 milliseconds
99.89% <= 6 milliseconds
99.90% <= 7 milliseconds
99.94% <= 8 milliseconds
99.97% <= 9 milliseconds
100.00% <= 10 milliseconds
100.00% <= 10 milliseconds
57603.69 requests per second
#測試結果,milliseconds為毫秒,時間越短,性能越好。
[root@redis redis]# redis-benchmark -h 192.168.1.1 -p 6379 -q -d 100
#測試向指定Redis服務器的指定端口6379存取大小為100B的數(shù)據(jù)包的性能。
[root@redis redis]# redis-benchmark -t set,lpush -n 100000 -q
#測試本機上Redis服務在進行set與lpush操作時的性能。
SET: 67659.00 requests per second
LPUSH: 64516.13 requests per second
Redis數(shù)據(jù)庫常用命令:
Redis數(shù)據(jù)庫采用key-value(鍵值對)的數(shù)據(jù)存儲形式,所使用的命令是set和get。
[root@localhost ~]# redis-cli #連接本地數(shù)據(jù)庫
127.0.0.1:6379 > set yuangong zhangsan #插入數(shù)據(jù)
OK
127.0.0.1:6379> get yuangong #查詢鍵值
"zhangsan"
127.0.0.1:6379> keys y* #查詢以“y”開頭的數(shù)據(jù)
1) "yuangong"
127.0.0.1:6379> keys y? #查詢以“y”開頭后面包含一個任意一位的數(shù)據(jù)
(empty list or set) #沒有查到,代表沒有符合條件的數(shù)據(jù)
127.0.0.1:6379> keys y?? #查詢以“y”開頭后面包含一個任意兩位的數(shù)據(jù)
(empty list or set)
127.0.0.1:6379> exists yuangong #判斷“yuangong”鍵是否存在
(integer) 1 #表示yuangong鍵存在
127.0.0.1:6379> exists yu #判斷“yu”鍵是否存在
(integer) 0
127.0.0.1:6379> keys * #查詢當前庫中所有鍵
1) "counter:__rand_int__"
2) "mylist"
3) "key:__rand_int__"
4) "yuangong"
5) "myset:__rand_int__"
127.0.0.1:6379> del yuangong #刪除yuangong鍵
(integer) 1
127.0.0.1:6379> set lv 23
OK
127.0.0.1:6379> type lv #獲取鍵“l(fā)v”對應的value值類型
string
rename命令可以對已有的key進行重命名,還有一個重命名的命令為renamenx。兩者區(qū)別是前者更改的目標key值不管存在與否,都將進行更改,直接覆蓋目標key值的數(shù)據(jù);后者renamenx命令是在更改時,會檢查目標鍵值是否存在,若存在,將放棄更改。
127.0.0.1:6379> get lvjian
"23"
127.0.0.1:6379> set liuyi 30 #插入一條數(shù)據(jù)
OK
127.0.0.1:6379> renamenx lvjian liuyi #將“l(fā)vjian”更改為“l(fā)iuyi”
(integer) 0 #“l(fā)iuyi”存在,放棄更改
127.0.0.1:6379> rename lvjian liuyi #使用rename命令進行更改
OK
127.0.0.1:6379> get liuyi #直接覆蓋目標數(shù)據(jù)
"23"
127.0.0.1:6379> dbsize #查看當前數(shù)據(jù)庫中key的數(shù)目
(integer) 5
多數(shù)據(jù)庫常用的命令
Redis支持多數(shù)據(jù)庫,Redis在沒有任何改動的情況下默認包含16個數(shù)據(jù)庫,數(shù)據(jù)庫名使用數(shù)字0--15來依次命名。每個庫中的數(shù)據(jù)是獨立的,也就是說在10庫中查不到0庫中的數(shù)據(jù)。
127.0.0.1:6379> select 10 #切換至編號10的庫
OK
127.0.0.1:6379[10]> select 15 #切換至編號15的庫
OK
127.0.0.1:6379[15]> select 0 #切換至編號0的庫
OK
127.0.0.1:6379> move liuyi 10 #將該庫中的數(shù)據(jù)移動到10庫中
(integer) 1
127.0.0.1:6379> select 10 #切換至編號10的庫
OK
127.0.0.1:6379[10]> get liuyi #查看移動過來的庫
"23"
#現(xiàn)在0庫中已經(jīng)查不到“l(fā)iuyi”的數(shù)據(jù)了
清除數(shù)據(jù)庫內(nèi)數(shù)據(jù):
Redis數(shù)據(jù)庫的整庫數(shù)據(jù)刪除主要分為兩個部分:清空當前數(shù)據(jù)庫中的數(shù)據(jù),使用flushdb命令實現(xiàn);清空所有庫中的數(shù)據(jù),使用flushall命令。數(shù)據(jù)庫清空操作比較危險,生產(chǎn)環(huán)境下慎用?。?!
五、Redis群集配置實例:
基于centos 7的Redis群集原理及配置
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
名稱欄目:centos7之Redis數(shù)據(jù)庫詳解及參數(shù)調(diào)優(yōu)(內(nèi)附搭建-創(chuàng)新互聯(lián)
網(wǎng)站網(wǎng)址:http://aaarwkj.com/article12/dohpgc.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供建站公司、外貿(mào)建站、網(wǎng)站內(nèi)鏈、網(wǎng)站導航、網(wǎng)站制作、網(wǎng)站策劃
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容