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

相关推荐
KmSH8umpK19 小时前
Redis分布式锁从原生手写到Redisson高阶落地,附线上死锁复盘优化方案进阶第三篇
redis·分布式·wpf
of Watermelon League19 小时前
5、使用 pgAdmin4 图形化创建和管理 PostgreSQL 数据库
数据库·postgresql
Dontla19 小时前
Python asyncpg库介绍(基于Python asyncio的PostgreSQL数据库驱动)连接池、SQLAlchemy
数据库·python·postgresql
俺不要写代码19 小时前
数据库:DQL
数据库·sql·mysql
zh15702319 小时前
如何编写动态SQL存储过程_使用sp_executesql执行灵活查询
jvm·数据库·python
2401_8242226919 小时前
SQL报表统计数据量巨大_分批统计策略
jvm·数据库·python
俺不要写代码19 小时前
数据库:DCL
数据库
X566119 小时前
mysql如何处理连接数过多报错_调整max_connections参数
jvm·数据库·python
学习3人组20 小时前
OEE(设备综合效率)的标准定义、公式、损失分类、以及在工位触屏/MES里怎么采集和统计
大数据·网络·数据库
张~颜20 小时前
PostgreSQL数据压缩技术
数据库·postgresql