欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Redis中不同持久化方式的差異對比

 更新時間:2024年03月27日 09:44:59   作者:ayzen1988  
大家應(yīng)該都知道,Redis持久化方式主要有兩種:RDB(Redis DataBase)和AOF(Append-only file),但是他們各自存儲了什么內(nèi)容?有什么差異呢?今天我來給大家做個小試驗,需要的朋友可以參考下

前言

大家應(yīng)該都知道,Redis持久化方式主要有兩種:RDB(Redis DataBase)和AOF(Append-only file)。

但是他們各自存儲了什么內(nèi)容?有什么差異呢?今天我來給大家做個小試驗。

前期準(zhǔn)備,需要安裝好docker、docker-compose的運行環(huán)境。

一、安裝Redis

1、創(chuàng)建相關(guān)目錄,執(zhí)行如下命令。

mkdir -p /docker/redis/{data,log}
cd /docker/redis

2、編寫yaml文件,內(nèi)容如下;version替換成自己的docker-compose版本。

vim docker-compose.yaml
version: '2.2.2'
services:
  redis:
    image: redis
    container_name: redis
    user: redis
    restart: always
    command: ["redis-server", "/usr/local/etc/redis/redis.conf"]
    ports:
      - "6379:6379"
    volumes:
      - ./data:/data
      - ./log:/var/log/redis
      - ./redis.conf:/usr/local/etc/redis/redis.conf
    networks:
      - mynet
 
networks:
  mynet:
    name: mynet
    driver: bridge

3、編寫配置文件,內(nèi)容如下。

vim redis.conf
# 綁定的IP地址,若想監(jiān)聽所有網(wǎng)卡則可以注釋掉(默認(rèn)只監(jiān)聽本地環(huán)回接口)
# bind 127.0.0.1
 
# Redis服務(wù)器運行的TCP端口
port 6379
 
# 是否以守護(hù)進(jìn)程模式運行
daemonize no
 
# PID文件位置
pidfile /var/run/redis-server.pid
 
# 日志文件位置
logfile "/var/log/redis/redis-server.log"
 
# 數(shù)據(jù)庫的數(shù)量,默認(rèn)是16個
databases 16
 
# 持久化選項
# RDB快照配置
save 1 1
save 900 1
save 300 10
save 60 10000
 
# AOF持久化開關(guān)
appendonly no
 
# AOF重寫條件
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
 
# 日志級別
loglevel notice
 
# TCP連接超時時間(秒)
timeout 0
 
# 客戶端閑置多長時間后斷開連接(秒)
tcp-keepalive 300

4、啟動服務(wù),執(zhí)行如下命令。

docker-compose up -d

5、檢查服務(wù)是否正常啟動,執(zhí)行如下命令。

docker-compose ps -a

正常情況會返回類似如下內(nèi)容。

6、如果有服務(wù)啟動失敗,可以使用如下命令排查問題。

docker logs redis

7、至此,Redis安裝完成并且已正常運行。

二、測試RDB(Redis DataBase)

1、修改配置文件,開啟RDB模式關(guān)閉AOF模式,內(nèi)容如下。

# 持久化選項
# RDB快照配置
 
# 這意味著如果Redis服務(wù)器在900秒(15分鐘)內(nèi)至少有一個鍵的數(shù)據(jù)發(fā)生變化,它將會執(zhí)行一次RDB持久化操作。
save 900 1
 
# 這個設(shè)置指,在300秒(5分鐘)內(nèi)如果有至少10個不同的鍵發(fā)生了變化,Redis也會創(chuàng)建一個新的RDB文件并將其保存到磁盤。
save 300 10
 
# 這個規(guī)則則表明,即使在很短的時間窗口內(nèi)(60秒,即1分鐘),只要有10000次(任何數(shù)量的變化都可以視為達(dá)到該閾值,因為通常情況下1分鐘內(nèi)不會發(fā)生如此大量的變更)鍵的變化,Redis也將執(zhí)行持久化。
save 60 10000
 
# AOF持久化開關(guān)
appendonly no

2、重新啟動Redis,執(zhí)行如下命令。

docker-compose down && docker-compose up -d

 3、進(jìn)入Redis客戶端,執(zhí)行如下命令。

docker exec -ti redis redis-cli

4、進(jìn)行一些簡單的操作,設(shè)置key、刪除key,執(zhí)行類似如下的命令。

set t1 max
set t1 hello-max
set t1 world-max

5、查看RDB文件,執(zhí)行如下命令。

cat data/dump.rdb

返回內(nèi)容如下。

從文件中可以看出來,只記錄了最后一次設(shè)置的key跟value。

6、刪除t1,然后再查看文件內(nèi)容如下。

從文件中已經(jīng)看不到t1的記錄了。

7、至此,RDB模式已測試完成。

三、測試AOF(Append-only file)

1、修改配置文件,開啟AOF模式關(guān)閉RDB模式,內(nèi)容如下。

# 持久化選項
# RDB快照配置
# RDB配置全部注釋掉
#save 900 1
#save 300 10
#save 60 10000
 
# AOF持久化開關(guān)
appendonly yes

 2、重新啟動Redis,執(zhí)行如下命令。

docker-compose down && docker-compose up -d

3、進(jìn)入Redis客戶端,執(zhí)行如下命令。

docker exec -ti redis redis-cli

4、進(jìn)行一些簡單的操作,設(shè)置key、刪除key,執(zhí)行類似如下的命令。

set t1 max
set t1 hello-max
set t1 world-max
del t1

5、查看AOF文件,執(zhí)行如下命令。

cat data/appendonly.aof

返回內(nèi)容如下。

從文件中可以看出來,每次的操作都有記錄。

6、至此、AOF模式已測試完成。

總結(jié)

Redis持久化方式主要有兩種:RDB(Redis DataBase)和AOF(Append-only file)。

1、RDB(Redis DataBase)

  • 保存了某個時間點上的數(shù)據(jù)快照,對于恢復(fù)數(shù)據(jù)來說比較快。
  • 占用空間相對較小,節(jié)省磁盤空間。

2、AOF(Append-only file)

  • 記錄Redis執(zhí)行的每個寫命令,保證了每個寫操作都能被持久化,從而提高了數(shù)據(jù)安全性。
  • 文件是一個文本文件,易于閱讀和理解,對于排查問題有幫助。
  • 因為記錄了每個寫操作,所以AOF文件通常比RDB文件大。

到此這篇關(guān)于Redis中不同持久化方式的差異對比的文章就介紹到這了,更多相關(guān)Redis持久化方式差異內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Redis之如何實現(xiàn)用戶關(guān)注

    Redis之如何實現(xiàn)用戶關(guān)注

    這篇文章主要介紹了Redis之如何實現(xiàn)用戶關(guān)注問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • 基于Redis實現(xiàn)阻塞隊列的方式

    基于Redis實現(xiàn)阻塞隊列的方式

    本文主要講解基于?Redis?的方式實現(xiàn)異步隊列,基于?Redis?的?list?實現(xiàn)隊列的方式也有多種,本文通過實例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2021-12-12
  • Redis快速實現(xiàn)分布式session的方法詳解

    Redis快速實現(xiàn)分布式session的方法詳解

    Session是客戶端與服務(wù)器通訊會話跟蹤技術(shù),服務(wù)器與客戶端保持整個通訊的會話基本信息。本文主要介紹了Redis快速實現(xiàn)分布式session的方法,感興趣的可以學(xué)習(xí)一下
    2022-01-01
  • 詳解Redis中的簡單動態(tài)字符串和C字符串的區(qū)別

    詳解Redis中的簡單動態(tài)字符串和C字符串的區(qū)別

    簡單動態(tài)字符串(SDS)和?C?字符串在實現(xiàn)和特性上存在一些區(qū)別,這些區(qū)別使得?SDS?更適合作為?Redis?中字符串對象的內(nèi)部表示,本文給大家介紹一下Redis中的簡單動態(tài)字符串和C字符串的區(qū)別,需要的朋友可以參考下
    2023-12-12
  • Redis解決庫存超賣問題實例講解

    Redis解決庫存超賣問題實例講解

    這篇文章主要介紹了Redis解決庫存超賣問題實例講解,問題和解決辦法都列舉了出來,很貼合實際開發(fā)場景,有需要的同學(xué)可以學(xué)習(xí)下
    2021-03-03
  • 查看redis的緩存時間方式

    查看redis的緩存時間方式

    這篇文章主要介紹了查看redis的緩存時間方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • redis如何后臺啟動的方法

    redis如何后臺啟動的方法

    這篇文章主要介紹了redis如何后臺啟動的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Redis 鍵值設(shè)計使用總結(jié)

    Redis 鍵值設(shè)計使用總結(jié)

    這篇文章主要介紹了Redis鍵值設(shè)計的使用總結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • Linux服務(wù)器快速安裝Redis6.0步驟示例詳解

    Linux服務(wù)器快速安裝Redis6.0步驟示例詳解

    這篇文章主要為大家介紹了Linux服務(wù)器快速安裝Redis6.0步驟示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • 淺談Redis安全策略

    淺談Redis安全策略

    Redis 提供了諸多安全策略,比如為了保證數(shù)據(jù)安全,提供了設(shè)置密碼的功能。本文就詳細(xì)的介紹了一下Redis安全策略,具有一定的參考價值,感興趣的可以了解一下
    2021-11-11

最新評論