【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 数量。

相关推荐
惊讶的猫3 小时前
Redis 哨兵(Sentinel)介绍
redis·redis哨兵
_Johnny_3 小时前
ETCD 配额/空间告警模拟方案
网络·数据库·etcd
猫头虎3 小时前
基于信创openEuler系统安装部署OpenTeleDB开源数据库的实战教程
数据库·redis·sql·mysql·开源·nosql·database
爬山算法3 小时前
MongoDB(1)什么是MongoDB?
数据库·mongodb
静听山水3 小时前
Redis核心数据结构-ZSet
数据结构·redis
Nandeska4 小时前
17、MySQL InnoDB ReplicaSet
数据库·mysql
AI_56784 小时前
SQL性能优化全景指南:从量子执行计划到自适应索引的终极实践
数据库·人工智能·学习·adb
Dontla4 小时前
黑马大模型RAG与Agent智能体实战教程LangChain提示词——6、提示词工程(提示词优化、few-shot、金融文本信息抽取案例、金融文本匹配案例)
redis·金融·langchain
難釋懷4 小时前
秒杀优化-基于阻塞队列实现秒杀优化
redis·缓存