备份
- 备份配置文件
在客户端中确认数据文件的位置,代码如下:
CONFIG GET dir
效果如下:
127.0.0.1:42552> config get dir
1) "dir"
2) "/usr/local/bin"
先创建一个用于备份的目录:
mkdir -p /usr/local/backup/redis
正式备份:
cp dump.rdb /usr/local/backup/redis
- 备份数据文件
cp redis.conf /usr/local/backup/redis
- (可选)备份AOF文件(启用了 AOF 持久化方式)
Resdis有两种存储方式:
RDB
:一种快照持久化方式,可以将某个时刻的 Redis 数据集保存到磁盘中,可以有效地减少磁盘空间的使用。AOF
是一种追加日志持久化方式,它记录了写命令,可以保证最终数据的一致性,但会占用更多的磁盘空间。因此,如果使用了AOF
持久化方式的话,需要备份RDB
文件和AOF
文件。
cp redis.aof /usr/local/backup/redis
可以在Redis客户端中查看是否启用了AOF持久化,代码如下:
CONFIG GET appendonly
效果如下:
127.0.0.1:42552> CONFIG GET appendonly
1) "appendonly"
2) "no
下载最新的版本
当然会变化的,你需要到 Index of /releases/ (redis.io)去找当前最新的稳定版,对应版本看官网就知道了。
例如,我现在目前最新版本是7.0的版本,所以代码如下:
wget http://download.redis.io/releases/redis-7.0.0.tar.gz
解压
使用的是tar
命令,由于我之前解压的地方是/usr/local
,所以这次我也指定解压到这,命令如下:
sudo tar xzf redis-7.0.0.tar.gz -C /usr/local/
编译
进入解压后的目录中:cd /usr/local/redis-7.0.0
,执行命令:
make
若是第一次安装,则你还需要执行
make install
停止老的服务
哦,为了防止你忘记是哪个端口,可以通过如下命令:ps -ef | grep redis-server
root 7367 1 0 12:57 ? 00:00:00 ./redis-server *:端口
你可要知道你的客户端在哪个位置呀,别说我没教过你用find
命令,执行如下代码,关闭老的服务:
./redis-cli -a 新密码 -p 端口 shutdown
拷贝新Redis中的文件到原bin目录
这里我们主要需要拷贝6个文件到bin目录中。注意,这6个文件都是新Redis中Src中的内容。
redis-server
cp redis-server /usr/local/bin/
redis-cli
cp redis-cli /usr/local/bin/
redis-benchmark
cp redis-benchmark /usr/local/bin/
redis-check-aof
cp redis-check-aof /usr/local/bin/
redis-check-rdb
cp redis-check-rdb /usr/local/bin/
redis-sentinel
cp redis-sentinel /usr/local/bin/
OK,到最后两步啦。
恢复配置文件
Emm,尝试过一些办法,但是还是没有一个有效率的方式,我就通过XFTP将文件导出在IDEA中,两边分栏对着修改了。
恢复数据
主要是在配置文件中指定数据文件的位置:
- 将
dir
配置为之前Redis
数据文件所在的目录。 - 将
dbfilename
配置为之前Redis
数据文件的文件名。
测试
- 查看原数据库中的key,现在有没有
127.0.0.1:端口> keys *
1) "name"
- 查看
Redis
的版本
redis-server --version