redis的備份還原方式主要有以下幾種方式
redis-dump工具負責將redis的db,key,ttl,type,value等序列成json格式進行轉儲,基於ruby開發,所以需要ruby環境,而且新版本的redis-dump要求ruby版本須達到2.3以上.
ruby官方提供了一個管理工具Ruby Version Manager (RVM),該工具提供了一個命令行界面,可以更方便的對ruby進行安裝,管理,以及版本切換等
GPG是一種用來確保終端用戶從軟體提供者下載的軟體是沒有經過第三方篡改的認證籤名技術.
$ gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
安裝GPG密鑰
$ \curl -sSL https://get.rvm.io | bash -s stable
安裝rvm
安裝完成後
$ source /home/redis/.rvm/scripts/rvm
通過rvm查看可用的ruby版本,可以看到最新的版本是2.7.0
$ rvm list known
可用的ruby版本
$ rvm install ruby 2.7.0
安裝ruby
安裝完成後查看ruby版本
$ ruby --versionruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [x86_64-linux]
$ gem install -V redis-dump
安裝redis-dump
查看redis-dump的語法格式
$ redis-dump -h Try: /home/redis/.rvm/gems/ruby-2.7.0/bin/redis-dump show-commandsUsage: /home/redis/.rvm/gems/ruby-2.7.0/bin/redis-dump [global options] COMMAND [command options] -u, --uri=S Redis URI (e.g. redis://hostname[:port]) -d, --database=S Redis database (e.g. -d 15) -a, --password=S Redis password (e.g. -a &39;) -s, --sleep=S Sleep for S seconds after dumping (for debugging) -c, --count=S Chunk size (default: 10000) -f, --filter=S Filter selected keys (passed directly to redis& Keyspacedb0:keys=1,expires=0,avg_ttl=0db1:keys=49,expires=0,avg_ttl=0db2:keys=3328,expires=0,avg_ttl=0db4:keys=405,expires=405,avg_ttl=167605815db6:keys=448,expires=448,avg_ttl=167455723db7:keys=1589,expires=0,avg_ttl=0db8:keys=43298,expires=0,avg_ttl=0db9:keys=2,expires=2,avg_ttl=52991992928db13:keys=554,expires=554,avg_ttl=12676777617
$ redis-dump -u ec1d-userredis-01.ra5wvk.0001.use1.cache.amazonaws.com:6379 --database=4 > db4.json
$ cat db4.json | redis-load 127.0.0.1:6379
驗證數據
$ redis-cli info keyspace39;--compress-debug-sections=zlib& ld --help | grep debug -S, --strip-debug Strip debugging symbols[root@ec1d-userredis-01 ~] ld --help | grep debug -S, --strip-debug Strip debugging symbols --compress-debug-sections=[none|zlib|zlib-gnu|zlib-gabi] Compress DWARF debug sections using zlib[root@ec2d-addrpipeline-tenv-02 ~]# cat /etc/redhat-release CentOS Linux release 7.7.1908 (Core)
注意出現這個現象的系統版本是CentOS7.4,問題也不知道出在哪裡,當然也可以通過yum升級解決這個問題,我索性把系統重裝成CentOS7.6後問題解決了.