【Redis】数据库管理操作

目录

提起 database,我们常常想到 MySQL,一个 MySQL 服务器上可以有很多个 database,一个 database 可以有很多个表,MySQl 也可以所心所欲地创建、删除数据库。对于 Redis 来说,我们上来就是学 key - value,没怎么接触过 database 的操作,其实 Redis 也是有 database 的相关操作的,只不过不像 MYSQL 那样随意,Redis 的数据库是现成的,用户不能创建新的数据库,也不能删除已有的数据库,Redis 默认提供了 16 个数据库,编号 0 - 15,数据库之间数据隔离,相互之间不影响。默认情况下使用的就是 0 号。

Redis 提供了几个面向 Redis 数据库的操作,分别是 dbsize 、select 、flushdb 、flushall 命令。

select

切换数据库

数据库的切换使用编号就行,前面也说了 0 - 15。

可以看到数据库之间数据是相互隔离的,数据库默认是 0,是 0 的话前面就没有 序号 这样的形式,其余的都有,数据库的范围是 0 - 15,select 的序号超过了就报错。

Redis 中虽然支持多数据库,但随着版本的升级,其实不是特别建议使用多数据库特性。如果真的需要完全隔离的两套键值对,更好的做法是维护多个 Redis 实例,而不是在一个Redis 实例中维护多数据库。这是因为本身 Redis 并没有为多数据库提供太多的特性,其次无论是否有多个数据库,Redis 都是使用单线程模型,所以彼此之间还是需要排队等待命令的执行。同时多数据库还会让开发、调试和运维工作变得复杂。所以实践中,始终使用数据库 0 其实是一个很好的选择。

flushdb / flushall

清除数据库,区别在于 flushdb 只清除当前数据库,flushall 会清楚所有数据库。

这里的 ASYNC \| SYNC 代表指令的执行是同步还是异步,同步会阻塞,异步不会,指令默认的执行操作根据是否开启 AOF 持久化决定,所以如果真的需要,就明确指定。

dbsize

返回当前 database 中的 key 数量。

相关推荐
泡海椒26 分钟前
JQuick-SQL REST API 数据接入:应用层调用接口后注册分析表
数据库·sql·1024程序员节
Random Glow1 小时前
聚簇索引 vs 二级索引:回表、覆盖索引、索引下推
数据库·mysql·性能优化·innodb·1024程序员节·索引优化
bksczm1 小时前
Redis数据结构之hash
数据结构·redis·哈希算法·1024程序员节
要开心吖ZSH2 小时前
一次线上锁风暴复盘:号源表大范围 DELETE 的隐患与分批删除改造
数据库·mysql·行锁·1024程序员节·间隙锁·lockwaittimeout
小南家的青蛙2 小时前
Redis的资料
redis·缓存·1024程序员节
程序员塔塔喵3 小时前
【Redis进阶篇|第十四篇】redis构建全局唯一ID
redis·全局唯一id
l1t3 小时前
在windows中测试musql数据库
数据库·sqlite·go·1024程序员节
小南家的青蛙3 小时前
华为云DCS全产品对比
redis·1024程序员节
深圳市恒星物联科技有限公司4 小时前
排水管网监测后期运维成本高吗?成本构成与控制策略分析
运维·缓存