【Azure Redis 快取】Windows和Linux系統本地安裝Redis, 載入dump.rdb中資料以及通過AOF日誌檔案追加資料

路邊兩盞燈發表於2021-01-24

任務描述

本次集中介紹使用Windows和Linux()搭建本地Redis伺服器的步驟,從備份的RDB檔案中載入資料,以及如何生成AOF檔案和通過AOF檔案想已經執行的Redis追加資料。

 

操作步驟

Windows版本

啟動Redis-server

1:下載Redis for Windows的壓縮包或者安裝檔案,此處通過下載zip檔案作為示例:https://github.com/microsoftarchive/redis/releases

2:解壓壓zip包到本地Redis目錄,通過CMD命令,啟動Redis-server.exe檔案。

3:新開CMD視窗。進入Reids目錄,通過redis-cli連線到Redis server。

【Azure Redis 快取】Windows和Linux系統本地安裝Redis, 載入dump.rdb中資料以及通過AOF日誌檔案追加資料

載入dump.rdb檔案

把準備好的RDB檔案改名為dump.rdb複製到本地與Redis-server.exe同級目錄下,重新啟動redis-server.exe

Redis-Server會預設從當前啟動資料夾中載入dump的檔案作為初始化資料。

C:\Program Files\Redis>redis-server
[32728] 24 Jan 19:56:21.300 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
                _._
           _.-``__ ''-._
      _.-``    `.  `_.  ''-._           Redis 3.2.100 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._
 (    '      ,       .-`  | `,    )     Running in standalone mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
 |    `-._   `._    /     _.-'    |     PID: 32728
  `-._    `-._  `-./  _.-'    _.-'
 |`-._`-._    `-.__.-'    _.-'_.-'|
 |    `-._`-._        _.-'_.-'    |           http://redis.io
  `-._    `-._`-.__.-'_.-'    _.-'
 |`-._`-._    `-.__.-'    _.-'_.-'|
 |    `-._`-._        _.-'_.-'    |
  `-._    `-._`-.__.-'_.-'    _.-'
      `-._    `-.__.-'    _.-'
          `-._        _.-'
              `-.__.-'

[32728] 24 Jan 19:56:21.303 # Server started, Redis version 3.2.100
[32728] 24 Jan 19:56:22.124 * DB loaded from disk: 0.821 seconds
[32728] 24 Jan 19:56:22.124 * The server is now ready to accept connections on port 6379

 

追加AOF資料

1:準備好aof檔案,如無,可以通過redis命令BGREWRITEAOF生成最新的appendonly.aof檔案

2:使用redis-cli --pipe命令,追加aof中的資料到Redis中。注: 此處的pipe後符號必須為 < 

redis-cli --pipe  < appendonly.aof

【Azure Redis 快取】Windows和Linux系統本地安裝Redis, 載入dump.rdb中資料以及通過AOF日誌檔案追加資料

 

Linux版本

啟動Redis-server

使用任何方式登入進Linux虛擬機器,如本地使用PuTTY,登入到Linux後,完完全全參考Redis的官網啟動Reids服務:https://redis.io/download#installation

有三種方式安裝Reids,從原始碼,從Ubuntu PPA和從Snapcraft

From source code

Download, extract and compile Redis with:

$ wget https://download.redis.io/releases/redis-6.0.10.tar.gz
$ tar xzf redis-6.0.10.tar.gz
$ cd redis-6.0.10
$ make

The binaries that are now compiled are available in the src directory. Run Redis with:

$ src/redis-server

You can interact with Redis using the built-in client:

$ src/redis-cli
redis> set foo bar
OK
redis> get foo
"bar"

From the official Ubuntu PPA

You can install the latest stable version of Redis from the redislabs/redis package repository. Add the repository to the apt index, update it and install:

$ sudo add-apt-repository ppa:redislabs/redis
$ sudo apt-get update
$ sudo apt-get install redis

From Snapcraft

You can install the latest stable version of Redis from the Snapcraft marketplace:

$ sudo snap install redis

如當前使用的為Ubuntu的PPA命令安裝和啟動Redis服務:
【Azure Redis 快取】Windows和Linux系統本地安裝Redis, 載入dump.rdb中資料以及通過AOF日誌檔案追加資料

複製RDB檔案進入Linux

檢視當前Linux中執行的Redis目錄,使用redis-cli連線成功後,使用config get dir命令檢視。

127.0.0.1:6379> config get dir
1) "dir"
2) "/var/lib/redis"

通常來講,第二行資料的路徑為當前Redis服務的啟動路徑,把RDB檔案改名為dump.rdb後複製到該目錄下

使用PSCP命令複製到/tmp目錄,然後再Linux中使用root許可權複製到/var/lib/redis目錄

#在Windows中執行pscp命令。如遇見無法訪問某個資料夾,則修改檔案目錄
#如pscp: unable to open /var/lib/redis/dump.rdb: permission denied,則匯入檔案到/tmp目錄

pscp -pw Password "C:\Program Files\Redis\dump.rdb" username@192.168.135.195:/tmp

#在Linux中執行COPY命令
~$ sudo su ~$ cd /tmp :/tmp# cp dump.rdb /var/lib/redis
載入dump.rdb檔案

當dump.rdb檔案存在於redis目錄後。重啟Reids服務即可

追加AOF資料

在Windows中,使用PSCP命令把準備好的AOF檔案傳送到Linux tmp目錄中

【Azure Redis 快取】Windows和Linux系統本地安裝Redis, 載入dump.rdb中資料以及通過AOF日誌檔案追加資料

在tmp目錄下使用 redis-cli --pipe < appendonly.aof 追加aof日誌到執行的Redis中。然後通過info Keyspace檢視當前的資訊

 

操作中遇見的錯誤:

1:no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf

在redis的目錄檔案中,已經包含了redis.windows.config檔案,可以在啟動redis-server時指定config檔案。如:redis-server redis.windows.conf

 

2:Creating Server TCP listening socket 127.0.0.1:6379: bind: No error

表明6379已經被佔用,可以通過redis-cli連線上去。然後執行shutdown命令關閉已經執行的Redis-server, 重啟即可。

【Azure Redis 快取】Windows和Linux系統本地安裝Redis, 載入dump.rdb中資料以及通過AOF日誌檔案追加資料

SHUTDOWN & RESTART 

【Azure Redis 快取】Windows和Linux系統本地安裝Redis, 載入dump.rdb中資料以及通過AOF日誌檔案追加資料

 

 

參考資料:

Windows Redis: https://github.com/microsoftarchive/redis/releases

Reids官網:https://redis.io/download#installation

Linux Copy File Command:https://www.cyberciti.biz/faq/copy-command/

Redis Backup:https://www.w3resource.com/redis/redis-backup.php

Copy File:https://comtechies.com/copy-files-between-windows-and-linux.html

Putty Copy File:https://www.ssh.com/ssh/putty/putty-manuals/0.68/Chapter5.html

相關文章