日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Redis中的配置文件,數據持久化,事務_Redis

作者:MinggeQingchun ? 更新時間: 2023-01-26 編程語言

一、配置文件

Redis的配置文件存放在Redis的安裝根目錄下

Windows 版本的 Redis 是 Microsoft 的開源部門提供的 Redis. 這個版本的 Redis 適合開發人員學習使用,生產環境中使用 Linux 系統上的 Redis;博主直接在本機上安裝操作

Windows下是 redis.windows-service.conf;Linux下是?redis.conf

1、Redis 的網絡相關配置

(1)bind:綁定IP地址,其它機器可以通過此IP訪問Redis,默認綁定127.0.0.1,也可以修改為本機的IP地址

(2)port:配置Redis占用的端口,默認是6379

(3)tcp-keepalive:TCP連接保活策略,可以通過tcp-keepalive配置項來進行設置,單位為秒,假如設置為60秒,則server端會每60秒向連接空閑的客戶端發起一次ACK請求,以檢查客戶端是否已經掛掉,對于無響應的客戶端則會關閉其連接

如果設置為0,則不會進行保活檢測。

2、Redis的常規配置

(1)loglevel:日志級別,開發階段可以設置成debug,生產階段通常設置為notice或者warning

(2)logfile:指定日志文件名,如果不指定,Redis只進行標準輸出。要保證日志文件所在的目錄必須存在,文件可以不存在。還要在redis啟動時指定所使用的配置文件,否則配置不起作用

(3)databases:配置Redis數據庫的個數,默認是16個??????

3、Redis的安全配置

requirepass:配置Redis的訪問密碼。默認不配置密碼,即訪問不需要密碼驗證

此配置項需要在protected-mode=yes時起作用

使用密碼登錄客戶端:redis-cli -h ip?-p 6379 -a pwd

二、數據持久化

redis是內存數據庫,它把數據存儲在內存中,這樣在加快讀取速度的同時也對數據安全性產生了新的問題,即當redis所在服務器發生宕機后,redis數據庫里的所有數據將會全部丟失。

為了解決這個問題,redis提供了持久化功能——RDB和AOF(Append Only File)

1、RDB

RDB(Redis DataBase)是 Redis 默認的持久化方案。在指定的時間間隔內,執行指定次數的寫操作,則會將內存中的數據寫入到磁盤中。即在指定目錄下生成一個dump.rdb文件。Redis重啟會通過加載dump.rdb文件來恢復數據

save <seconds> <changes>:配置復合的快照觸發條件,即Redis?在seconds秒內key改變changes次,Redis把快照內的數據保存到磁盤中一次。默認的策略是:

  • 15分鐘內改變了1次
  • 或者5分鐘內改變了10次
  • 或者1分鐘內改變了1萬次

如果要禁用Redis的持久化功能,則把所有的save配置都注釋掉

2、AOF

AOF(Append Only File),Redis 默認不開啟。它的出現是為了彌補RDB的不足(數據的不一致性),所以它采用日志的形式來記錄每個寫操作,并追加到文件中。

Redis 重啟會根據日志文件的內容將寫指令從前到后執行一次以完成數據的恢復工作。

Redis以日志的形式來記錄每個寫操作,將Redis執行過的所有寫指令記錄下來(讀操作不記錄)

AOF保存的文件是appendonly.aof文件

  • appendonly:配置是否開啟AOF,yes表示開啟,no表示關閉。默認是no。
  • appendfilename:AOF保存文件名
  • appendfsync:AOF異步持久化策略

三、事務

事務:把一組數據庫命令放在一起執行,保證操作原子性,要么同時成功,要么同時失敗。

Redis的事務:允許把一組redis命令放在一起,把命令進行序列化,然后一起執行,保證部分原子性

Redis事務的常用命令:

1、multi

用于標記事務塊的開始。Redis會將后續的命令逐個放入隊列中,然后才能使用EXEC命令原子化地執行這個命令序列

2、exec

在一個事務中執行所有先前放入隊列的命令,然后恢復正常的連接狀態。

如果在把命令壓入隊列的過程中報錯,則整個隊列中的命令都不會執行,執行結果報錯;

如果在壓隊列的過程中正常,在執行隊列中某一個命令報錯,則只會影響本條命令的執行結果,其它命令正常運行;

當使用WATCH命令時,只有當受監控的鍵沒有被修改時,EXEC命令才會執行事務中的命令;而一旦執行了exec命令,之前加的所有watch監控全部取消

3、discard

清除所有先前在一個事務中放入隊列的命令,并且結束事務。

如果使用了WATCH命令,那么DISCARD命令就會將當前連接監控的所有鍵取消監控

4、watch

watch key [key …]

當某個事務需要按條件執行時,就要使用這個命令將給定的鍵設置為受監控的。

如果被監控的key值在本事務外有修改時,則本事務所有指令都不會被執行。

Watch命令相當于關系型數據庫中的樂觀鎖

5、unwatch

清除所有先前為一個事務監控的鍵。

如果在watch命令之后你調用了EXEC或DISCARD命令,那么就不需要手動調用UNWATCH命令

?

總結

原文鏈接:https://blog.csdn.net/MinggeQingchun/article/details/124425994

相關推薦

欄目分類
最近更新