目录
前言
切换数据库(select)
数据库中key的数量(dbsize)
清除数据库(flushall flushdb)
前言
MySQL有一个很重要的概念,那就是数据库database,一个MySQL里面有很多个database,一个database中有很多张表。在之前的redis中,好像只涉及到键值对的存储,没有涉及到类似的database的语法。
但是其实Redis也是有database这样的说法的,只不过不像MySQL那么随意,不能像MySQL那样随心所欲的创建和删除数据库。Redis的database是现成的,用户不能创建新的数据库,也不能删除已经存在的数据库。
Redis提供了16个默认的数据库(0~15),这16个数据库中的数据是隔离的,不会相互影响。
Redis 提供了几个面向 Redis 数据库的操作,分别是 dbsize、select、flushdb、flushall 命令。
Redis 中虽然支持多数据库,但随着版本的升级,其实不是特别建议使用多数据库特性。如
果真的需要完全隔离的两套键值对,更好的做法是维护多个 Redis 实例,而不是在一个Redis 实例中维护多数据库。这是因为本身 Redis 并没有为多数据库提供太多的特性,其次无论是否有多个数据库,Redis 都是使用单线程模型,所以彼此之间还是需要排队等待命令的执行。同时多数据库还会让开发、调试和运维工作变得复杂。所以实践中,始终使用数据库 0 其实是一个很好的选择。
切换数据库(select)
语法:select dbIndex
示例:
在0号数据库中,存在着k1 ~ k10的key:
切换数据库查看是否还存在这些数据:
keys *:
可以看见命令行后面有一个[1],这个表示为1号数据库,我们尝试切换16号数据库:
说明没有16号数据库,数据库的编号为0~15。
数据库中key的数量(dbsize)
dbsize是Redis数据库中的一个命令,用于获取当前数据库的key的数量。它返回一个整数,表示数据库中key的数量。
在Redis中,key是用来存储数据的,可以是字符串、哈希、列表、集合、有序集合等不同的数据结构。dbsize命令可以帮助我们了解当前数据库中存储了多少个key,从而对数据库的使用情况有一个直观的了解。
需要注意的是,dbsize命令的时间复杂度为O(1),即不论数据库中有多少个key,执行该命令所需的时间都是固定的。
语法:dbsize
示例:
清除数据库(flushall flushdb)
flushdb / flushall 命令用于清除数据库,区别在于 flushdb 只清除当前数据库,flushall 会清除所有数据库。
这个就不再多讲解。