Redis中的配置文件,數(shù)據(jù)持久化,事務(wù)
一、配置文件
Redis的配置文件存放在Redis的安裝根目錄下
Windows 版本的 Redis 是 Microsoft 的開(kāi)源部門(mén)提供的 Redis. 這個(gè)版本的 Redis 適合開(kāi)發(fā)人員學(xué)習(xí)使用,生產(chǎn)環(huán)境中使用 Linux 系統(tǒng)上的 Redis;博主直接在本機(jī)上安裝操作
Windows下是 redis.windows-service.conf;Linux下是 redis.conf
1、Redis 的網(wǎng)絡(luò)相關(guān)配置
(1)bind:綁定IP地址,其它機(jī)器可以通過(guò)此IP訪(fǎng)問(wèn)Redis,默認(rèn)綁定127.0.0.1,也可以修改為本機(jī)的IP地址
(2)port:配置Redis占用的端口,默認(rèn)是6379
(3)tcp-keepalive:TCP連接?;畈呗?,可以通過(guò)tcp-keepalive配置項(xiàng)來(lái)進(jìn)行設(shè)置,單位為秒,假如設(shè)置為60秒,則server端會(huì)每60秒向連接空閑的客戶(hù)端發(fā)起一次ACK請(qǐng)求,以檢查客戶(hù)端是否已經(jīng)掛掉,對(duì)于無(wú)響應(yīng)的客戶(hù)端則會(huì)關(guān)閉其連接
如果設(shè)置為0,則不會(huì)進(jìn)行?;顧z測(cè)。
2、Redis的常規(guī)配置
(1)loglevel:日志級(jí)別,開(kāi)發(fā)階段可以設(shè)置成debug,生產(chǎn)階段通常設(shè)置為notice或者warning
(2)logfile:指定日志文件名,如果不指定,Redis只進(jìn)行標(biāo)準(zhǔn)輸出。要保證日志文件所在的目錄必須存在,文件可以不存在。還要在redis啟動(dòng)時(shí)指定所使用的配置文件,否則配置不起作用
(3)databases:配置Redis數(shù)據(jù)庫(kù)的個(gè)數(shù),默認(rèn)是16個(gè)??????
3、Redis的安全配置
requirepass:配置Redis的訪(fǎng)問(wèn)密碼。默認(rèn)不配置密碼,即訪(fǎng)問(wèn)不需要密碼驗(yàn)證
此配置項(xiàng)需要在protected-mode=yes時(shí)起作用
使用密碼登錄客戶(hù)端:redis-cli -h ip -p 6379 -a pwd
二、數(shù)據(jù)持久化
redis是內(nèi)存數(shù)據(jù)庫(kù),它把數(shù)據(jù)存儲(chǔ)在內(nèi)存中,這樣在加快讀取速度的同時(shí)也對(duì)數(shù)據(jù)安全性產(chǎn)生了新的問(wèn)題,即當(dāng)redis所在服務(wù)器發(fā)生宕機(jī)后,redis數(shù)據(jù)庫(kù)里的所有數(shù)據(jù)將會(huì)全部丟失。
為了解決這個(gè)問(wèn)題,redis提供了持久化功能——RDB和AOF(Append Only File)
1、RDB
RDB(Redis DataBase)是 Redis 默認(rèn)的持久化方案。在指定的時(shí)間間隔內(nèi),執(zhí)行指定次數(shù)的寫(xiě)操作,則會(huì)將內(nèi)存中的數(shù)據(jù)寫(xiě)入到磁盤(pán)中。即在指定目錄下生成一個(gè)dump.rdb文件。Redis重啟會(huì)通過(guò)加載dump.rdb文件來(lái)恢復(fù)數(shù)據(jù)
save <seconds> <changes>:配置復(fù)合的快照觸發(fā)條件,即Redis 在seconds秒內(nèi)key改變changes次,Redis把快照內(nèi)的數(shù)據(jù)保存到磁盤(pán)中一次。默認(rèn)的策略是:
- 15分鐘內(nèi)改變了1次
- 或者5分鐘內(nèi)改變了10次
- 或者1分鐘內(nèi)改變了1萬(wàn)次
如果要禁用Redis的持久化功能,則把所有的save配置都注釋掉
2、AOF
AOF(Append Only File),Redis 默認(rèn)不開(kāi)啟。它的出現(xiàn)是為了彌補(bǔ)RDB的不足(數(shù)據(jù)的不一致性),所以它采用日志的形式來(lái)記錄每個(gè)寫(xiě)操作,并追加到文件中。
Redis 重啟會(huì)根據(jù)日志文件的內(nèi)容將寫(xiě)指令從前到后執(zhí)行一次以完成數(shù)據(jù)的恢復(fù)工作。
Redis以日志的形式來(lái)記錄每個(gè)寫(xiě)操作,將Redis執(zhí)行過(guò)的所有寫(xiě)指令記錄下來(lái)(讀操作不記錄)
AOF保存的文件是appendonly.aof文件
appendonly
:配置是否開(kāi)啟AOF,yes表示開(kāi)啟,no表示關(guān)閉。默認(rèn)是no。appendfilename
:AOF保存文件名appendfsync
:AOF異步持久化策略
三、事務(wù)
事務(wù):把一組數(shù)據(jù)庫(kù)命令放在一起執(zhí)行,保證操作原子性,要么同時(shí)成功,要么同時(shí)失敗。
Redis的事務(wù):允許把一組redis命令放在一起,把命令進(jìn)行序列化,然后一起執(zhí)行,保證部分原子性
Redis事務(wù)的常用命令:
1、multi
用于標(biāo)記事務(wù)塊的開(kāi)始。Redis會(huì)將后續(xù)的命令逐個(gè)放入隊(duì)列中,然后才能使用EXEC命令原子化地執(zhí)行這個(gè)命令序列
2、exec
在一個(gè)事務(wù)中執(zhí)行所有先前放入隊(duì)列的命令,然后恢復(fù)正常的連接狀態(tài)。
如果在把命令壓入隊(duì)列的過(guò)程中報(bào)錯(cuò),則整個(gè)隊(duì)列中的命令都不會(huì)執(zhí)行,執(zhí)行結(jié)果報(bào)錯(cuò);
如果在壓隊(duì)列的過(guò)程中正常,在執(zhí)行隊(duì)列中某一個(gè)命令報(bào)錯(cuò),則只會(huì)影響本條命令的執(zhí)行結(jié)果,其它命令正常運(yùn)行;
當(dāng)使用WATCH命令時(shí),只有當(dāng)受監(jiān)控的鍵沒(méi)有被修改時(shí),EXEC命令才會(huì)執(zhí)行事務(wù)中的命令;而一旦執(zhí)行了exec命令,之前加的所有watch監(jiān)控全部取消
3、discard
清除所有先前在一個(gè)事務(wù)中放入隊(duì)列的命令,并且結(jié)束事務(wù)。
如果使用了WATCH命令,那么DISCARD命令就會(huì)將當(dāng)前連接監(jiān)控的所有鍵取消監(jiān)控
4、watch
watch key [key …]
當(dāng)某個(gè)事務(wù)需要按條件執(zhí)行時(shí),就要使用這個(gè)命令將給定的鍵設(shè)置為受監(jiān)控的。
如果被監(jiān)控的key值在本事務(wù)外有修改時(shí),則本事務(wù)所有指令都不會(huì)被執(zhí)行。
Watch命令相當(dāng)于關(guān)系型數(shù)據(jù)庫(kù)中的樂(lè)觀鎖
5、unwatch
清除所有先前為一個(gè)事務(wù)監(jiān)控的鍵。
如果在watch命令之后你調(diào)用了EXEC或DISCARD命令,那么就不需要手動(dòng)調(diào)用UNWATCH命令
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Redis使用ZSET實(shí)現(xiàn)消息隊(duì)列的項(xiàng)目實(shí)踐
本文主要介紹了Redis使用ZSET實(shí)現(xiàn)消息隊(duì)列的項(xiàng)目實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07Redis 設(shè)置密碼無(wú)效問(wèn)題解決
本文主要介紹了Redis 設(shè)置密碼無(wú)效問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02redis5.0以上基于密碼認(rèn)證的集群cluster方式
這篇文章主要介紹了redis5.0以上基于密碼認(rèn)證的集群cluster方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11淺談Redis位圖(Bitmap)及Redis二進(jìn)制中的問(wèn)題
這篇文章主要介紹了Redis位圖(Bitmap)及Redis二進(jìn)制中的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07Redis實(shí)現(xiàn)每周熱評(píng)的項(xiàng)目實(shí)踐
實(shí)時(shí)統(tǒng)計(jì)和展示熱門(mén)內(nèi)容是一種常見(jiàn)的需求,本文主要介紹了Redis實(shí)現(xiàn)每周熱評(píng)的項(xiàng)目實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-03-03