日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

配置

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

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

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

備份與恢復

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

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

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

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

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

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

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

1.半持久化RDB模式

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

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

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

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

127.0.0.1:6379> SAVE 
輸出結果:
OK

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

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

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

127.0.0.1:6379> BGSAVE
輸出結果:
Background saving started

兩個命令的區別在于,SAVA命令執行時會阻塞Redis服務器進程,直至備份過程結束。而BGSAVE命令則會創建一個子程序,不影響Redis服務器的父進程。

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

127.0.0.1:6379> DBSIZE
輸出結果:
 (integer) 17
127.0.0.1:6379> KEYS *
輸出結果:
 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"

由上述結果可知,當前數據庫中含有17條數據。

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

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

由上述結果可知,當前數據庫為空。

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

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

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

127.0.0.1:6379> ping
輸出結果:
PONG
127.0.0.1:6379> KEYS *
輸出結果:
 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"

由上述結果可知,數據已經被成功恢復。

2.全持久化AOF模式

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

AOF持久化的參數配置如下所示。

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

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

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

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

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

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

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

若只配置了AOF,當重啟Redis服務時,Redis會加載AOF文件,通過逐個執行AOF文件中的命令將數據載入到內存中。

批量執行

在實際應用中,會出現大量用戶在一定時間內產生大量數據的狀況,而這些數據需要被快速的創建與裝載。前文已經講解了如何通過一條條指令實現插入數據以及管理數據,接下來講解如何批量的執行多條Redis命令。

創建一個txt文件,將需要執行的命令寫入文件中,每一行即代表一條命令。假設命令如下所示。

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

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

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

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

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

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

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

圖形化管理工具

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

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

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

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

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

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

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

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

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

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

[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數據庫

單擊刷新按鈕,可呈現Redis數據庫及所在系統的相關信息。至此,Redis數據庫圖形管理工具已經安裝并成功連接數據庫,用戶可通過相關提示對數據庫進行自主操作。

分享到:
標簽:Redis
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定