国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

NoSQL數(shù)據(jù)庫:Redis高級實用技巧

數(shù)據(jù)庫 Redis
Redis可通過命令行的方式進行數(shù)據(jù)庫配置,也可以通過配置文件的方式進行數(shù)據(jù)庫配置。由于數(shù)據(jù)庫的配置選項較多,使用命令行的方式并不簡便,因此數(shù)據(jù)庫開發(fā)和管理人員大多采用修改配置文件的方式進行數(shù)據(jù)庫配置。

配置

Redis可通過命令行的方式進行數(shù)據(jù)庫配置,也可以通過配置文件的方式進行數(shù)據(jù)庫配置。由于數(shù)據(jù)庫的配置選項較多,使用命令行的方式并不簡便,因此數(shù)據(jù)庫開發(fā)和管理人員大多采用修改配置文件的方式進行數(shù)據(jù)庫配置。

Redis配置文件位于Redis安裝目錄下,名為redis.conf。在本書前面章節(jié)中已經(jīng)介紹過Redis配置文件中的部分配置項,如參數(shù)port修改端口號,參數(shù)daemonize啟動守護進程,參數(shù)databases修改數(shù)據(jù)庫的數(shù)量。除此之外Redis還支持其他配置選項,如是否開啟持久化、日志級別等。

Redis多個數(shù)據(jù)庫之間并不是完全隔離的,且Redis并不支持為每個數(shù)據(jù)庫設(shè)置不同的訪問密碼。客戶端訪問數(shù)據(jù)庫時,要么沒有權(quán)限訪問任意一個數(shù)據(jù)庫,要么能訪問所有數(shù)據(jù)庫。使用FLUSHALL命令可以清空一個Redis實例中所有數(shù)據(jù)庫中的數(shù)據(jù)。

備份與恢復

Redis非常輕量級,一個空的Redis占用的內(nèi)存只有1MB左右,即使多個Redis實例也不存在額外占用很多內(nèi)存的問題,因此建議不同的應(yīng)用使用不同的Redis實例存儲數(shù)據(jù)。

由于Redis所有數(shù)據(jù)都存儲在內(nèi)存中,當Redis數(shù)據(jù)備份定期地通過異步方式保存到磁盤上時,該方式稱為半持久化模式。當每一次的數(shù)據(jù)變化都寫入aof文件里面時,則稱為全持久化模式。

Redis提供的兩種不同的持久化方法中,半持久化RDB(Redis DataBase)方式,是在不同的時間點,將Redis存儲的數(shù)據(jù)生成快照并存儲到磁盤等介質(zhì)中;而全持久化AOF(Append Only File)方式,是將Redis執(zhí)行過的所有寫指令(每秒鐘)記錄在日志中,在下次Redis重新啟動時,將這些指令從前到后再重復執(zhí)行一遍,恢復數(shù)據(jù)。

RDB更適合數(shù)據(jù)備份,默認開啟;而AOF更適合用來保存數(shù)據(jù),默認關(guān)閉。具體的持久化方式可以根據(jù)業(yè)務(wù)的特點來定,單獨使用其中一種方式或者組合使用都可以。這里講解一下單獨采用RDB或AOF進行數(shù)據(jù)持久化的缺點,讀者在具體使用中應(yīng)根據(jù)業(yè)務(wù)承受的能力進行選擇,如下所示。

(1)單獨使用RDB時。因為RDB持久化方式是周期性地進行快照備份,若在兩個備份節(jié)點間服務(wù)器意外宕機,所有從上次進行快照的時間節(jié)點到服務(wù)器宕機時所產(chǎn)生的數(shù)據(jù)將全部丟失。

(2)單獨使用AOF時。AOF機制將Redis執(zhí)行的每一條命令全部追加到磁盤中,大量數(shù)據(jù)的寫入會降低服務(wù)器及Redis的性能,服務(wù)器可能會反應(yīng)遲鈍或出現(xiàn)卡頓現(xiàn)象。

除此之外,Redis也支持同時開啟RDB和AOF。系統(tǒng)重啟后,Redis會優(yōu)先使用AOF來恢復數(shù)據(jù),將數(shù)據(jù)的損失降低到最小。RDB可以視為冷備,在AOF文件丟失或損壞不可用的時候,使用RDB來進行數(shù)據(jù)的快速恢復。

1.半持久化RDB模式

開啟自動快照。在redis.conf配置文件中SAVE配置項有2個值,具體如下所示。

# Save the DB to disk.
#
# save  [ ...]
#save <指定時間間隔> <執(zhí)行指定次數(shù)更新操作>
……省略部分代碼……
save 300 5

SAVE參數(shù)的兩個值分別為:指定間隔時間和改動的鍵的個數(shù),表示300秒內(nèi)有5個更改,則將內(nèi)存中的數(shù)據(jù)快照寫入磁盤。該配置項的意義為,當在指定的時間內(nèi)被更改的鍵的個數(shù)大于指定的個數(shù)時,Redis會自動將內(nèi)存中的所有數(shù)據(jù)進行快照,并創(chuàng)建dump.rdb文件存儲在硬盤上,以此完成數(shù)據(jù)備份。

禁用自動快照,只需要將所有的SAVE參數(shù)刪除即可。使用SAVE命令創(chuàng)建當前數(shù)據(jù)庫的備份,,具體如下所示。

127.0.0.1:6379> SAVE 
輸出結(jié)果:
OK

SAVE命令默認將備份文件dump.rdb保存至Redis的安裝目錄,查看備份文件所在的Redis安裝目錄具體如下所示。

127.0.0.1:6379> CONFIG GET dir
輸出結(jié)果:
1) "dir"
2) "/"

也可以使用BGSAVE命令,將SAVE命令放至后臺運行,具體如下所示。

127.0.0.1:6379> BGSAVE
輸出結(jié)果:
Background saving started

兩個命令的區(qū)別在于,SAVA命令執(zhí)行時會阻塞Redis服務(wù)器進程,直至備份過程結(jié)束。而BGSAVE命令則會創(chuàng)建一個子程序,不影響Redis服務(wù)器的父進程。

進行數(shù)據(jù)備份前查看數(shù)據(jù)庫包含鍵的數(shù)量及具體情況,具體如下所示。

127.0.0.1:6379> DBSIZE
輸出結(jié)果:
 (integer) 17
127.0.0.1:6379> KEYS *
輸出結(jié)果:
 1) "city2"
 2) "subject2"
 3) "website3"
 4) "website4"
 5) "city3"
 6) "website2"
 7) "city1"
 8) "newbook"
 9) "computer"
10) "website9"
11) "fruits"
12) "subject1"
13) "website"
14) "web"
15) "drinks"
16) "website1"
17) "stock"

由上述結(jié)果可知,當前數(shù)據(jù)庫中含有17條數(shù)據(jù)。

為了演示備份數(shù)據(jù)的恢復,先將備份數(shù)據(jù)移動到其他文件夾,防止丟失,然后使用FLUSHDB命令刪除當前數(shù)據(jù)庫的數(shù)據(jù),具體如下所示。

[root@qfedu ~]# mv /dump.rdb /data/
//清空當前數(shù)據(jù)庫
127.0.0.1:6379> FLUSHDB 
輸出結(jié)果:
OK
127.0.0.1:6379> KEYS *
輸出結(jié)果:
 (empty array)

由上述結(jié)果可知,當前數(shù)據(jù)庫為空。

使用systemctl stop redis命令模擬數(shù)據(jù)庫宕機。恢復數(shù)據(jù)時,將備份文件dump.rdb移動到Redis的安裝目錄下,然后啟動服務(wù)即可完成,具體如下所示。

[root@qfedu ~]# systemctl stop redis 
[root@qfedu ~]# cp /tmp/dump.rdb /
[root@qfedu ~]# systemctl start redis

最后,查看Redis數(shù)據(jù)庫,驗證數(shù)據(jù)是否恢復,具體如下所示。

127.0.0.1:6379> ping
輸出結(jié)果:
PONG
127.0.0.1:6379> KEYS *
輸出結(jié)果:
 1) "city2"
 2) "subject2"
 3) "website3"
 4) "website4"
 5) "city3"
 6) "website2"
 7) "city1"
 8) "newbook"
 9) "computer"
10) "website9"
11) "fruits"
12) "subject1"
13) "website"
14) "web"
15) "drinks"
16) "website1"
17) "stock"

由上述結(jié)果可知,數(shù)據(jù)已經(jīng)被成功恢復。

2.全持久化AOF模式

AOF方式通過日志記錄每個寫操作,并追加到文件中。AOF文件的保存位置是通過dir參數(shù)設(shè)置的,默認的文件名是appendonly.aof,可以通過appendfilename參數(shù)修改該名稱。

AOF持久化的參數(shù)配置如下所示。

(1) appendonly yes:開啟AOF持久化功能;

(2) appendfilename appendonly.aof:AOF持久化保存文件名;

(3) appendfsync always:每次執(zhí)行寫入都會執(zhí)行同步,最安全也最慢;

(4) #appendfsync everysec:每秒執(zhí)行一次同步操作;

(5) #appendfsync no:不主動進行同步操作,而是完全交由操作系統(tǒng)來做,每30秒一次,最快也最不安全;

(6) auto-aof-rewrite-percentage 100:當AOF文件大小超過上一次重寫時的AOF文件大小的百分之多少時會再次進行重寫,如果之前沒有重寫過,則以啟動時的AOF文件大小為依據(jù);

(7) auto-aof-rewrite-min-size 64mb:允許重寫的最小AOF文件大小,配置寫入AOF文件后,要求系統(tǒng)刷新硬盤緩存的機制。

若只配置了AOF,當重啟Redis服務(wù)時,Redis會加載AOF文件,通過逐個執(zhí)行AOF文件中的命令將數(shù)據(jù)載入到內(nèi)存中。

批量執(zhí)行

在實際應(yīng)用中,會出現(xiàn)大量用戶在一定時間內(nèi)產(chǎn)生大量數(shù)據(jù)的狀況,而這些數(shù)據(jù)需要被快速的創(chuàng)建與裝載。前文已經(jīng)講解了如何通過一條條指令實現(xiàn)插入數(shù)據(jù)以及管理數(shù)據(jù),接下來講解如何批量的執(zhí)行多條Redis命令。

創(chuàng)建一個txt文件,將需要執(zhí)行的命令寫入文件中,每一行即代表一條命令。假設(shè)命令如下所示。

SET k1 v1
SET k2 "www.fengyunedu.cn"
RPUSH list3 "a1" "b2" "c3" "d4"
SADD sset4 one two three
HSET hash5 hsk1 "hsv1"
ZADD zset6 300 "E" 200 "F" 400 "G"
MSET k3 v3 k4 v4 k5 v5

假設(shè)將該文件命名為data1.txt,并存儲在“/”目錄下。為達到更明顯的實驗效果,需清空數(shù)據(jù)庫中的所有數(shù)據(jù),具體如下所示。

127.0.0.1:6379> FLUSHALL
輸出結(jié)果:
OK
127.0.0.1:6379> KEYS *
輸出結(jié)果:
(empty array)

使用cat命令批量執(zhí)行命令文件,具體如下所示。

[root@qfedu ~]# cat /data1.txt | redis-cli 
OK
OK
(integer) 4
(integer) 3
(integer) 1
(integer) 3
OK

為了進一步驗證命令文件是否執(zhí)行成功,可通過KEYS命令查看Redis數(shù)據(jù)庫中的全部數(shù)據(jù),具體如下所示。

127.0.0.1:6379> KEYS *
輸出結(jié)果:
1) "sset4"
2) "k3"
3) "zset6"
4) "k5"
5) "k2"
6) "k1"
7) "hash5"
8) "list3"
9) "k4"

圖形化管理工具

Redis數(shù)據(jù)庫管理不僅支持Redis-cli命令行工具,還支持多種交互性友好的圖形化管理工具。針對Redis數(shù)據(jù)庫存儲數(shù)據(jù)為鍵值對類型的特點,簡單介紹5個知名的Redis圖型化管理工具,如下所示。

(1)Redis Desktop Manager是一款基于Qt5的跨平臺Redis可視化桌面管理工具,也是目前為止使用率最廣的可視化工具。它支持全平臺,例如Windows(Windows 7以上版本)、Linux、MacOS等。

(2)Another Redis Desktop Manager是GitHub上的一個開源項目,不僅開源,而且提供在Windows、macOS上平臺的安裝包,體積小,完全免費。

(3)Medis是Mac系統(tǒng)上一款界面美觀,而且易于使用的Redis數(shù)據(jù)庫管理工具。

(4)RedisView是一個開源跨平臺的國產(chǎn)Redis圖形化界面工具。

(5)FastoRedis是一個跨平臺的Redis數(shù)據(jù)庫管理軟件,也是收費軟件,方便進行Redis集群監(jiān)控和管理。

接下來以Another Redis Desktop Manager為例,演示使用圖形化工具管理Redis數(shù)據(jù)庫。

在GitHub或者Gitee(開源中國)網(wǎng)站下載Another Redis Desktop Manager軟件包,然后安裝該軟件。雙擊打開該軟件,通過設(shè)置選項將頁面設(shè)置為簡體中文,利于用戶操作界面。

單擊“確定”按鈕,然后新建一個連接,填寫Redis數(shù)據(jù)庫信息,連接Redis數(shù)據(jù)庫。

該軟件正在對Redis數(shù)據(jù)庫進行遠程連接,因此需要提前開啟Redis數(shù)據(jù)庫的端口,關(guān)閉本地保護模式以及關(guān)閉僅限本地連接的配置項,最后關(guān)閉系統(tǒng)的防火墻,具體如下所示。

[root@qfedu ~]# vim /etc/redis/6379.conf 
……
protected-mode no  #將值yes改為no
#bind 127.0.0.1 -::1  #注釋該配置項
……
[root@qfedu ~]# systemctl stop firewalld
[root@qfedu ~]# systemctl disable firewalld

回到軟件連接界面,連接Redis數(shù)據(jù)庫

單擊刷新按鈕,可呈現(xiàn)Redis數(shù)據(jù)庫及所在系統(tǒng)的相關(guān)信息。至此,Redis數(shù)據(jù)庫圖形管理工具已經(jīng)安裝并成功連接數(shù)據(jù)庫,用戶可通過相關(guān)提示對數(shù)據(jù)庫進行自主操作。

責任編輯:華軒 來源: 運維book思議
相關(guān)推薦

2010-01-18 17:45:33

VB.NET線程訪問數(shù)

2012-08-06 16:09:40

Redis數(shù)據(jù)庫

2009-12-21 15:50:39

2009-09-04 10:27:28

Linux實用技巧linux操作系統(tǒng)linux

2022-03-23 09:18:10

Git技巧Linux

2019-03-20 15:59:11

NoSQLRedis數(shù)據(jù)庫

2009-01-03 09:34:30

ASP.NET.NET性能優(yōu)化

2022-10-11 08:00:47

多線程開發(fā)技巧

2011-04-08 15:40:01

Oracle認證

2024-05-17 08:52:43

SQL實用技巧行列轉(zhuǎn)換

2022-11-03 10:28:59

PandasSAC機制

2009-12-23 17:32:35

Linux構(gòu)建軟路由

2019-10-10 16:31:51

PyCharmPythonWindows

2009-12-09 11:21:30

Linux實用技巧

2010-09-14 10:41:24

DIV+CSS排版

2019-12-22 23:10:19

LinuxSSH加密

2019-11-25 10:12:59

Python技巧工具

2010-10-08 15:44:17

vim

2025-06-18 10:00:00

Redis事務(wù)Java

2020-05-20 13:06:20

UI排版設(shè)計
點贊
收藏

51CTO技術(shù)棧公眾號

av网站大全在线| 韩国三级成人在线| 亚洲三级在线| 精品一区免费av| 亚洲国产精品久久久久蝴蝶传媒| 1024成人网| 国模视频一区二区三区| 色噜噜狠狠狠综合曰曰曰| 水蜜桃一区二区三区| 色女人在线视频| 理论电影国产精品| 亚洲人av在线影院| 乱熟女高潮一区二区在线| 毛片在线网址| 久久国内精品视频| 国产女人水真多18毛片18精品| 三级理论午夜在线观看| 亚洲网站在线| 69堂精品视频| 777久久精品一区二区三区无码 | 97人人做人人人难人人做| 在线观看av网站| 亚洲大黄网站| 亚洲国模精品一区| 成人小视频在线看| 天天超碰亚洲| 欧美刺激脚交jootjob| www在线观看免费| 香蕉久久精品日日躁夜夜躁| 精品久久久久久久久国产字幕| 国产伦精品一区二区三区照片91 | 欧美精品激情在线| 欧美视频免费一区二区三区| 亚洲影音一区| 中文字幕精品国产| 樱花在线免费观看| 六月丁香婷婷色狠狠久久| 一区二区精品在线| 欧美91在线| 色狠狠综合天天综合综合| 一本久道久久综合狠狠爱亚洲精品| 久久综合影音| 午夜精品久久久久久久久久久久久| 中文字幕欧美一区二区| 色综合天天综合在线视频| 妺妺窝人体色777777| 日韩一区亚洲二区| 精品乱人伦小说| 九色成人在线| 免费人成在线不卡| 国产精品久久9| 中文字幕在线免费观看视频| 亚洲精品视频在线看| 一本一道久久a久久精品综合| 久久99深爱久久99精品| 欧美又粗又长又爽做受| 亚洲欧洲在线观看av| 成年人在线看| 91亚洲资源网| 久久精品中文字幕一区二区三区| 国产一区二区三区免费观看在线| 91福利视频网站| 91吃瓜在线观看| 色天天综合久久久久综合片| 色网在线观看| 欧美www在线| 黄色在线网站噜噜噜| 欧美日韩色婷婷| 霍思燕三级露全乳照| 亚洲女厕所小便bbb| 天堂av最新在线| 国内外成人免费激情在线视频| 韩国一区二区三区在线观看| 日本黄大片在线观看| 性欧美videos另类喷潮| 欧美啪啪免费视频| 色美美综合视频| 玖玖精品一区| 牛人盗摄一区二区三区视频 | 亚洲天天在线日亚洲洲精| 国产在线日本| 国产精品国产三级国产aⅴ原创| 国产奶头好大揉着好爽视频| 欧美一级久久| 992tv在线观看在线播放| 成人免费毛片a| 亚洲精品一品区二品区三品区| 午夜久久黄色| 国产精品video| 国产盗摄精品一区二区三区在线| 欧美激情www| 午夜日本精品| 亚洲五月天综合| 成人一区在线观看| 免费黄色在线视频网站| 高清欧美性猛交xxxx黑人猛交| 久久99精品久久久| jizz在线免费观看| 国产精品免费在线免费| 精品国产a一区二区三区v免费| 久久视频在线免费观看| 日本在线中文字幕一区二区三区| 日韩欧美国产精品一区| 欧美午夜寂寞| 国产中文字幕在线免费观看| www.欧美色图| 免费国产黄色网址| 7777精品伊人久久久大香线蕉经典版下载| 国产在线一区不卡| 亚洲精品中文字幕乱码三区不卡| 日韩欧美亚洲成人| 日色在线视频| 久久免费成人精品视频| 激情伊人五月天久久综合| 蜜臀av.com| 成人aaaa免费全部观看| av免费播放网址| 国产午夜精品一区二区三区四区| 国产天堂在线播放| 一道本无吗dⅴd在线播放一区| av成人免费看| 欧美黑人xxxx| 奇米亚洲欧美| 国产v综合v亚洲欧美久久| 欧美猛男做受videos| www国产黄色| 一区国产精品视频| 久久精品国产色蜜蜜麻豆| а√天堂8资源在线官网| 日韩欧美国产三级| 亚洲美女少妇无套啪啪呻吟| 亚洲精品自在在线观看| 欧美日韩一级二级三级| ****av在线网毛片| 欧洲av一区| 99久久精品国产观看| 免费在线观看一区| 无码粉嫩虎白一线天在线观看| 亚洲免费精彩视频| 国产劲爆久久| 国产日本欧美一区二区三区| 国产一区二区三区自拍| 在线播放av网站| 亚洲字幕一区二区| 美女一区二区视频| 色www永久免费视频首页在线 | 3d成人动漫网站| 日本伊人精品一区二区三区观看方式| 亚洲色成人www永久在线观看| 国产精品乱子久久久久| av中文天堂在线| 麻豆精品视频| 亚洲国产高清高潮精品美女| 盗摄牛牛av影视一区二区| 色七七在线观看| 欧美日韩精品三区| 在线观看特色大片免费视频| 成年人三级视频| 日韩在线视频播放| 中文字幕av一区二区三区免费看| 好男人免费精品视频| 国产精品自拍首页| 精品久久久久久最新网址| 成人永久免费视频| 女厕嘘嘘一区二区在线播放| melody高清在线观看| 亚洲一区二区三区精品视频| 久久精品小视频| 国产欧美在线| 成人网址大全| 国产中文字幕日韩| 欧美日韩免费视频| 国产在线国偷精品免费看| 最新版sss视频在线| 成人免费视频观看视频| 久久精品夜色噜噜亚洲a∨| av在线免费网址| 欧美在线观看视频免费| 色综合色综合久久综合频道88| 夜夜夜精品看看| 欧美一级免费| 日本在线播放一区| 亚洲国产综合色| www一区二区三区| 中文字幕在线永久在线视频| 色大师av一区二区三区| 免费97视频在线精品国自产拍| 欧美日韩加勒比精品一区| 久久精品国产亚洲a| 国语产色综合| 情侣黄网站免费看| 在线免费观看日韩欧美| y111111国产精品久久久| 日韩中文字幕亚洲精品欧美| 在线观看国产91| 国产成人午夜精品5599| 我不卡伦不卡影院| 国产福利亚洲| 黄色成人在线| 激情视频一区二区|