大家好,欢迎来到IT知识分享网。
Redis中flushdb和flushall命令的区别
Redis中flushdb和flushall命令都可以清空数据库,不过需要注意以下几点:
- flushdb命令只会清除当前数据库中的数据,而不会影响其他数据库
- flushall会清除Redis实例所有数据库(0-15)的缓存数据,执行时候需要小心
1. flushdb命令
- flushdb命令只会清除当前数据库中的数据,而不会影响其他数据库
- 同步执行方式,会导致服务器阻塞
- Redis4.0提供了异步的选项 flushdb async
flushdb async, 实际数据库清空操作将放在后台线程中以异步方式进行,flushdb就不会再阻塞服务器了
假设数据库0存了3个键,数据库1存了2个键,别的数据库都没数据。在数据库1中执行flushdb命令,分别查看数据库中的键的个数,数据库0中键的个数是3,数据库1中键的个数变成0了。
127.0.0.1:6379> select 0 OK 127.0.0.1:6379> set a 1 OK 127.0.0.1:6379> set b 2 OK 127.0.0.1:6379> set c 3 OK 127.0.0.1:6379> dbsize (integer) 3 127.0.0.1:6379> select 1 OK 127.0.0.1:6379[1]> set a 2 OK 127.0.0.1:6379[1]> set b 1 OK 127.0.0.1:6379[1]> dbsize (integer) 2 127.0.0.1:6379[1]> flushdb OK 127.0.0.1:6379[1]> dbsize (integer) 0 127.0.0.1:6379[1]> select 0 OK 127.0.0.1:6379> dbsize (integer) 3
2. flushall命令
- flushall会清除Redis实例所有数据库(0-15)的缓存数据,执行flushall命令前要格外小心
- 同步方式执行,会导致服务器阻塞
- Redis4.0提供了异步的选项 flushall async
flushall async 命令将以异步方式在后线程中执行所有实际的数据库清空操作,flushall命令将不会阻塞服务器了
假设数据库0存了3个键,数据库1存了2个键,别的数据库都是没数据。在数据库1中执行flushall命令,分别查看数据库中的键的个数,数据库0中键的个数变成0,数据库1中键的个数变成0。
127.0.0.1:6379[1]> select 0 OK 127.0.0.1:6379> dbsize (integer) 3 127.0.0.1:6379> select 1 OK 127.0.0.1:6379[1]> dbsize (integer) 0 127.0.0.1:6379[1]> set a 1 OK 127.0.0.1:6379[1]> set b 2 OK 127.0.0.1:6379[1]> dbsize (integer) 2 127.0.0.1:6379[1]> flushall OK 127.0.0.1:6379[1]> dbsize (integer) 0 127.0.0.1:6379[1]> select 0 OK 127.0.0.1:6379> dbsize (integer) 0
3.使用到的命令介绍
3.1 select命令
select命令是用来切换到指定的数据库。select db
127.0.0.1:6379> select 0 OK 127.0.0.1:6379> select 1 OK 127.0.0.1:6379[1]> select 2 OK 127.0.0.1:6379[2]> select 15 OK
3.2 dbsize命令
dbsize命令是用来查看当前数据库中key的数量
127.0.0.1:6379[1]> select 0 OK 127.0.0.1:6379> dbsize (integer) 3 127.0.0.1:6379> select 1 OK 127.0.0.1:6379[1]> dbsize (integer) 2
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/120266.html