Save与 BGSAVE 的区别
时间: 2023-09-12 16:07:34 浏览: 56
SAVE 和 BGSAVE 都是 Redis 进行持久化操作的命令,但它们有以下几点不同:
1. 执行方式:SAVE 是同步执行的命令,会在执行期间阻塞 Redis 服务器进程;而 BGSAVE 是异步执行的命令,会在后台执行,不会阻塞 Redis 服务器进程。
2. 执行效率:因为 SAVE 是同步执行的命令,会在执行期间阻塞 Redis 服务器进程,所以它的执行效率比较低,尤其是在数据比较大的情况下。而 BGSAVE 是异步执行的命令,在后台执行,不会阻塞 Redis 服务器进程,所以它的执行效率比较高。
3. 操作方式:SAVE 命令会将整个数据集保存到磁盘上,如果数据集比较大,保存操作会比较耗时,同时也会占用比较多的磁盘空间。而 BGSAVE 命令则是通过 fork 函数创建一个子进程来进行持久化操作,子进程将数据写入磁盘,完成后再通知主进程,所以 BGSAVE 的操作方式相比 SAVE 更加高效。
4. 安全性:因为 SAVE 是同步执行的命令,会在执行期间阻塞 Redis 服务器进程,所以如果在 SAVE 执行期间 Redis 服务器进程异常退出,可能会导致数据丢失。而 BGSAVE 是异步执行的命令,在后台执行,不会阻塞 Redis 服务器进程,所以即使 Redis 服务器进程异常退出,也不会导致数据丢失。
相关问题
redis怎么执行BGSAVE
在 Redis 中,可以使用 BGSAVE 命令执行后台保存操作。以下是 BGSAVE 命令的使用方法:
1. 打开终端,连接 Redis 服务器:
```
redis-cli
```
2. 执行 BGSAVE 命令:
```
BGSAVE
```
执行该命令后,Redis 服务器会在后台执行持久化操作,生成 RDB 文件。
3. 查看持久化进程是否在执行:
```
INFO persistence
```
执行该命令后,会显示 Redis 当前的持久化状态。在输出结果中,如果有类似以下信息,则表示 BGSAVE 正在执行:
```
# Persistence
loading:0
rdb_changes_since_last_save:0
rdb_bgsave_in_progress:1 # BGSAVE 正在执行
rdb_last_save_time:1587141526
rdb_last_bgsave_status:ok
rdb_last_bgsave_time_sec:0
rdb_current_bgsave_time_sec:-1
rdb_last_cow_size:0
aof_enabled:0
aof_rewrite_in_progress:0
aof_rewrite_scheduled:0
aof_last_rewrite_time_sec:-1
aof_current_rewrite_time_sec:-1
aof_last_bgrewrite_status:ok
aof_last_write_status:ok
aof_last_cow_size:0
```
以上就是在 Redis 中执行 BGSAVE 命令的方法。需要注意的是,执行 BGSAVE 命令时,Redis 可能会占用较高的 CPU 和内存资源,因此需要谨慎使用。
ansible部署redis,关闭主bgsave开启从bgsave
您可以使用Ansible来部署Redis并进行配置更改。以下是一个示例Ansible Playbook,用于关闭主节点的BGSAVE并启用从节点的BGSAVE:
```yaml
---
- name: Deploy Redis and configure BGSAVE
hosts: redis-servers
become: true
tasks:
- name: Install Redis
apt:
name: redis-server
state: present
- name: Stop Redis service
service:
name: redis
state: stopped
- name: Configure Redis
lineinfile:
path: /etc/redis/redis.conf
regexp: '^(save|# save)'
line: 'save ""'
state: present
- name: Start Redis service
service:
name: redis
state: started
```
请将上述代码保存为一个名为`deploy_redis.yml`的文件,并将`redis-servers`替换为您要部署Redis的主机组。然后,运行以下命令来执行Playbook:
```
ansible-playbook deploy_redis.yml
```
这将安装Redis并在主节点上关闭BGSAVE,并在从节点上启用BGSAVE。请确保在运行Playbook之前已经进行了正确的主机配置和连接。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)