【Redis】数据库管理操作

目录

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

Redis 提供了几个面向 Redis 数据库的操作,分别是 dbsizeselectflushdbflushall 命令。

select

切换数据库

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

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

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

flushdb / flushall

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

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

dbsize

返回当前 database 中的 key 数量。

相关推荐
H_oRIZoN_6 分钟前
Linux入门DAY37(IO 多路复用、TCP 并发服务器与数据库 SQLite3 详解)
linux·服务器·数据库
2501_9304724417 分钟前
05_数据库迁移腾讯云_DTS评估与预检回滚清单
数据库·云计算·腾讯云
三84425 分钟前
SSRF 从入门到实战(下篇):gopher 打 Redis 实现 RCE
数据库·redis·缓存
承渊政道44 分钟前
从GB到TB:KFS如何实现高吞吐、有序的异构增量同步
数据库·kingbase·延迟优化·kfs·数据量级优化
名字还没想好☜1 小时前
Java 用 LinkedHashMap 三行实现 LRU 缓存:accessOrder、removeEldestEntry 与线程安全
java·后端·安全·spring·缓存
广州灵眸科技有限公司1 小时前
灵眸科技EAI3572-Core-L核心板即将发布!八核+4TOPS NPU,面向工业与边缘AI
linux·运维·服务器·数据库·yolo
手握风云-1 小时前
Redis:不只是缓存那么简单(十六)
缓存
Y3815326629 小时前
MySQL 慢查询排查实战:EXPLAIN 看懂 type 与 Extra,一个字段定位性能问题
数据库·mysql
Logintern0910 小时前
PostgreSQL 的 ORDER BY 多列排序
数据库·postgresql
今天AI了吗11 小时前
DeepSeek Harness 深度解析:从评测架构到实战落地
java·网络·数据库·人工智能·架构·java-ee