Redis 提供了⼏个⾯向 Redis 数据库的操作,分别是 dbsize、select、flushdb、flushall 命令, 我将介绍这些常见的命令。
切换数据库
select dbIndex
许多关系型数据库,例如 MySQL ⽀持在⼀个实例下有多个数据库存在的,MySQL 可以随心所欲的 创建/删除 数据库,数据库名用字符来区分,而 Redis 中也是有数据库的概念,但并不像 MySQL 这样随意,Redis 中的数据库是现成的,已经创建好了的,用户不能创建也不能删除。
Redis 默认配置中是有 16 个数据库。select 0 操作会切换到第⼀个数据库,select 15 会切换到最后⼀个数据库。0 号数据库至 15 号数据库保存的数据是完全不冲突的。即各自有各⾃的键值对。默认情况下,我们处于数据库 0。
如上图,在数据库 0 中添加了一个键值对,当切换为数据库 1 就找不到添加的键值对了
注意:
Redis 中虽然⽀持多数据库,但随着版本的升级,其实不是特别建议使⽤多数据库特性。如 果真的需要完全隔离的两套键值对,更好的做法是维护多个 Redis 实例,⽽不是在⼀个 Redis 实例中维护多数据库。
这是因为本⾝ Redis 并没有为多数据库提供太多的特性,其次⽆论是否有多个数据库,Redis 都是使⽤单线程模型,所以彼此之间还是需要排队等待命令的执⾏。同时多数据库还会让开发、调试和运维⼯作变得复杂。所以实践中,始终使⽤数据库 0 其实是⼀个很好的选择。
查看当前数据库中的元素个数
dbsize
清除数据库
flushdb / flushall 命令⽤于清除数据库,区别在于 flushdb 只清除当前数据库,flushall 会清除所有数据库。
注意:
永远不要在线上环境执⾏清除数据的操作,除⾮你想体验⼀下 “从删库到跑路” 。