從A redis 匯出資料到B redis (RDB文件)
以下是我練習資料搬移時,為了不影響原DB資料,要把原redis的資料搬到自己的redis,方法應該不只一種,歡迎大家提出自己的方式或建議:
從A redis 匯出資料到B redis (RDB文件)
Redis運行時資料保存在記憶體中,一旦重啟則資料將全部遺失。
Redis提供了兩種持久化方式:
RDB持久化:生成某個時間點的快照文件
AOF持久化(append only file):日誌追加模式(Redis協議格式保存)
Redis可以同時使用以上兩種持久化。
以上說明參於https://zhuanlan.zhihu.com/p/98497789
以下是我練習資料搬移時,為了不影響原DB資料,要把原redis的資料搬到自己的redis,方法應該不只一種,歡迎大家提出自己的方式或建議:
1. 匯出 A Redis 的 XXX.rdb 文件 通常最新的 RDB 文件位於 /data 資料夾下。你可以使用以下步驟來導出:
- 直接將XXX.rdb複製到B redis,放置的位置可自定,同下步驟2的路徑
- 若A redis 是用 Docker 啟:
docker exec -it <your_redis_container_name> redis-cli SAVE
docker cp <your_redis_container_name>:/data/dump.rdb /local/path/destination_folder/XXX.rdb
★ 請將 <your_redis_container_name> 替換為你的 Redis 容器名稱,將文件複製到B redis指定的路徑,XXX.rdb 也可替換為你想要的文件名。
2. 讓 B Redis 使用指定的 XXX.rdb 文件
1️⃣ 準備 Redis 配置文件 redis.conf
● 確認B redis redis.conf的配置 是否有定義持久化配置,不然重啟redis服務,他就會再產新的rdb文件。 ● 定義dir : 保存先前的rdb文件的路徑 ● 定義dbfilename : rdb的文件名稱
在 redis.conf 中:
# 指定保存先前的 RDB 文件的路徑
dir /path/to/your/destination_folder
# 指定 RDB 的文件名稱
dbfilename XXX.rdb
★ 請確保 dir 配置指向正確的目錄,dbfilename 設置為你要使用的文件名。
2️⃣重啟 Redis 服務
重新啟動 B Redis 服務,確保配置文件生效。
[同場加映] 如何建立可以指定 RDB 的 Redis 容器
- 建立 Dockerfile
創建一個資料夾,並在其中創建一個名為 Dockerfile 的文件,內容如下:
// Dockerfile
FROM redis
COPY redis.conf /etc/redis/redis.conf
CMD [ "redis-server", "/etc/redis/redis.conf" ]
- 創建 Docker Image
docker build -t my_image .
- 創建Docker container
docker run - name my_container_name -d -p 7050:6379 -e TZ=Asia/Taipei - restart always my_image
Done!
메타데이터
- post_id
- 42b56e7fc059
- slug
- 從a-redis-匯出資料到b-redis-rdb文件-42b56e7fc059
- url
- https://medium.com/@innovate72095/%E5%BE%9Ea-redis-%E5%8C%AF%E5%87%BA%E8%B3%87%E6%96%99%E5%88%B0b-redis-rdb%E6%96%87%E4%BB%B6-42b56e7fc059
- canonical_url
- https://medium.com/@innovate72095/%E5%BE%9Ea-redis-%E5%8C%AF%E5%87%BA%E8%B3%87%E6%96%99%E5%88%B0b-redis-rdb%E6%96%87%E4%BB%B6-42b56e7fc059
- author_url
- https://medium.com/@innovate72095
- status
- ok
- fetched_at
- 2026-07-24 16:54:31