Redis 提供了⼏个⾯向Redis数据库的操作,分别是dbsize、select、flushdb、flushall命令, 本机将通过具体的使⽤常⻅介绍这些命令。
一、切换数据库
select dbIndex
许多关系型数据库,例如MySQL⽀持在⼀个实例下有多个数据库存在的,但是与关系型数据库⽤ 字符来区分不同数据库名不同,Redis只是⽤数字作为多个数据库的实现。Redis默认配置中是有16 个数据库。select0操作会切换到第⼀个数据库,select15会切换到最后⼀个数据库。0号数据库和 15 号数据库保存的数据是完全不冲突的(如图2-30所⽰),即各种有各⾃的键值对。默认情况下,我 们处于数据库0。
图2-30Redis管理的数据库
Redis中虽然⽀持多数据库,但随着版本的升级,其实不是特别建议使⽤多数据库特性。如 果真的需要完全隔离的两套键值对,更好的做法是维护多个Redis实例,⽽不是在⼀个 Redis 实例中维护多数据库。这是因为本⾝Redis并没有为多数据库提供太多的特性,其次 ⽆论是否有多个数据库,Redis都是使⽤单线程模型,所以彼此之间还是需要排队等待命令 的执⾏。同时多数据库还会让开发、调试和运维⼯作变得复杂。所以实践中,始终使⽤数据 库0其实是⼀个很好的选择。
二、清理数据库
flushdb / flushall 命令⽤于清除数据库,区别在于flushdb只清除当前数据库,flushall会清楚所有数据库。
永远不要在线上环境执⾏清除数据的操作,除⾮你想体验⼀把“从删库到跑路”的操作。