日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Redis的持久化机制与内存管理机制

發(fā)布時(shí)間:2025/1/21 数据库 56 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Redis的持久化机制与内存管理机制 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1、概述

Redis的持久化機(jī)制有兩種:RDB 和 AOF ,這兩種機(jī)制有什么區(qū)別?正式環(huán)境應(yīng)該采用哪種機(jī)制?

我們的服務(wù)器內(nèi)存資源是有限的,如果內(nèi)存被Redis的緩存占滿了怎么辦?這就要看Redis的內(nèi)存管理策略是怎么配置的了。

今天我們就來聊一下上面提出的這兩個(gè)問題。

2、Redis的持久化機(jī)制

2.1 RDB

1、什么是RDB?

RDB 全稱 Redis DataBase,是 Redis 默認(rèn)的持久化機(jī)制。

RDB機(jī)制的原理是:每隔一段時(shí)間把Redis在內(nèi)存中的數(shù)據(jù)寫到磁盤,手動(dòng)停止Redis服務(wù)時(shí),也會(huì)往磁盤上寫,當(dāng)Redis再次啟動(dòng)時(shí),會(huì)從磁盤上讀取到數(shù)據(jù),恢復(fù)到內(nèi)存中。

2、RDB的好處

  • 會(huì)定時(shí)對(duì)數(shù)據(jù)進(jìn)行全量備份
  • 恢復(fù)數(shù)據(jù)簡單,支持遠(yuǎn)程傳輸
  • 可以保證備份數(shù)據(jù)的完整性
  • 恢復(fù)數(shù)據(jù)速度塊

3、RDB的壞處

  • 由于是有時(shí)間間隔的備份,因此當(dāng)服務(wù)異常時(shí)數(shù)據(jù)可能會(huì)丟失一部分
  • 備份時(shí)對(duì)CPU的負(fù)擔(dān)較大

4、RDB在配置文件中的相關(guān)配置

1)文件名及文件保存路徑的配置

2)設(shè)置同步硬盤的時(shí)間

save ""? 代表不同步到磁盤,數(shù)據(jù)只在內(nèi)存存儲(chǔ)

save 300 100? 代表有100個(gè)鍵發(fā)生變更,每300秒同步磁盤

?3)其他配置

stop-writes-on-bgsave-error yes? ?// 設(shè)置為yes,則在寫入磁盤的的過程中出錯(cuò),會(huì)停止寫操作

rdbcompression yes? ? //? 設(shè)置為yes,則rdb文件在寫的過程中會(huì)進(jìn)行壓縮,對(duì)CPU有一定損耗

rdbchecksum yes? ?// 設(shè)置為yes,會(huì)對(duì)rdb進(jìn)行校驗(yàn),對(duì)性能有一定損耗

2.2 AOF

1、什么是AOF

AOF 全稱 Append Only File,默認(rèn)是關(guān)閉的。

AOF是以日志的形式記錄Redis的寫操作,讀操作不會(huì)記錄。以追加的方式存儲(chǔ)文件,恢復(fù)時(shí)會(huì)將日志文件中的寫操作重新執(zhí)行一遍。

2、AOF的好處

  • 以秒級(jí)進(jìn)行備份,更能保證數(shù)據(jù)的完整性
  • 如果磁盤滿了,可以執(zhí)行redis-check-aof工具解決
  • 當(dāng)日志文件太大,會(huì)自動(dòng)進(jìn)行優(yōu)化壓縮
  • 日志中的寫操作,可以手動(dòng)修改,恢復(fù)起來更靈活

3、AOF的壞處

  • 日志文件比RDB文件大
  • 每秒都會(huì)與磁盤有IO操作,影響性能

4、AOF在配置文件中的相關(guān)配置

1)開啟AOF,設(shè)置文件名

?2)設(shè)置同步策略

# appendfsync always? ? // 有一條寫操作就同步一次(性能差)
appendfsync everysec? ?// 每秒同步一次(推薦)
# appendfsync no? ? ? ? ? // 不同步

?3)重寫策略

auto-aof-rewrite-percentage 100? ? // AOF文件是上次大小的100%(建議調(diào)小)
auto-aof-rewrite-min-size 64mb? ? ? // AOF文件大小達(dá)到64MB(建議調(diào)大)

以上兩個(gè)配置建議修改,根據(jù)實(shí)際情況調(diào)整。

2.3 RDB 、AOF 如何選擇

如果只是把Redis當(dāng)緩存來用,不介意數(shù)據(jù)的丟失,建議使用RDB方式,如果對(duì)數(shù)據(jù)的完整性比較在意,建議使用AOF方式。

3、Redis的內(nèi)存管理機(jī)制

我們的服務(wù)器內(nèi)存資源是有限的,如果內(nèi)存被Redis的緩存占滿了,我們應(yīng)該如何處理呢?

通過調(diào)整配置文件中的 maxmemory 和?maxmemory-policy?

maxmemory 是指定內(nèi)存達(dá)到多大時(shí),執(zhí)行內(nèi)存優(yōu)化,默認(rèn)單位是byte

maxmemory-policy 是執(zhí)行的優(yōu)化策略:

  • noeviction  Redis的默認(rèn)配置,不清理過期的緩存,沒有內(nèi)存則返回錯(cuò)誤
  • allkeys-lru  推薦配置,清除最少用的舊緩存

4、綜述

今天聊了一下Redis的持久化機(jī)制和內(nèi)存管理機(jī)制,希望能對(duì)大家有所幫助。

希望大家多多評(píng)論交流,共同成長。

關(guān)注追風(fēng)人聊Java,每天更新Java干貨。

總結(jié)

以上是生活随笔為你收集整理的Redis的持久化机制与内存管理机制的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。