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訪問(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秒向連接空閑的客戶端發(fā)起一次ACK請(qǐng)求,以檢查客戶端是否已經(jīng)掛掉,對(duì)于無(wú)響應(yīng)的客戶端則會(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的訪問(wèn)密碼。默認(rèn)不配置密碼,即訪問(wèn)不需要密碼驗(yàn)證
此配置項(xiàng)需要在protected-mode=yes時(shí)起作用
使用密碼登錄客戶端: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?for?windows?6.2.6安裝包最新步驟詳解
這篇文章主要介紹了redis?for?windows?6.2.6安裝包全網(wǎng)首發(fā),使用Windows計(jì)劃任務(wù)自動(dòng)運(yùn)行redis服務(wù),文章給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-04-04
使用lua+redis解決發(fā)多張券的并發(fā)問(wèn)題
這篇文章主要介紹了使用lua+redis解決發(fā)多張券的并發(fā)問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01
如何利用 Redis 實(shí)現(xiàn)接口頻次限制
這篇文章主要介紹了如何利用 Redis 實(shí)現(xiàn)接口頻次限制,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02
基于Redis6.2.6版本部署Redis?Cluster集群的問(wèn)題
這篇文章主要介紹了基于Redis6.2.6版本部署Redis?Cluster集群,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-04-04
redis?消息隊(duì)列完成秒殺過(guò)期訂單處理方法(一)
這篇文章主要介紹了redis?消息隊(duì)列完成秒殺過(guò)期訂單處理方法,包括redis?消息通知處理代金券過(guò)期問(wèn)題–失效問(wèn)題的分析,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-07-07
Linux下安裝Redis 6.0.5的實(shí)現(xiàn)
本文詳細(xì)介紹了在Linux系統(tǒng)下安裝Redis 6.0.5的步驟,包括安裝準(zhǔn)備、編譯安裝、啟動(dòng)服務(wù)、設(shè)置密碼和配置文件修改等,具有一定的參考價(jià)值,感興趣的可以了解一下2025-02-02

