本文介绍Redis的一些基本知识。
1. 基本知识
1.1 Redis的16个数据库实例
这是Redis自带的数据库实例(和MySQL中的数据库一致,如自带的mysql、sys等等)。注意,Redis中只能使用自带的数据库实例,程序员不能自己修改和创建数据库实例。即Redis中的数据库实例只能由Redis服务器来创建和维护。
默认情况下,Redis会自动创建16个数据库实例,并且给这些数据库实例进行编号,从0开始,一直到15,使用时通过编号来使用数据库。(为了防止数据库实例不够用,可以通过配置文件来指定Redis自动创建的数据库个数。)
注意,Redis和MySQL还是有区别的,数据库实例在没有数据的情况下,占用的空间很小。而MySQL的数据库实例本身则会占用空间较大,因为自身需要维护表结构等等。所以,Redis即使创建多个数据库实例也不会有较大的空间开销。
默认情况下,Redis客户端连接的是0号数据库实例。切换数据库实例的命令是select index
,index表示数据库的编号,使用它来切换;数据库实例之间的数据是不通用的。简单案例如下所示:
1.2 常用命令
以下命令可在客户端运行。
redis-benchmark
命令用来测试Redis处理并发的性能,虚拟大量的连接,然后测试其处理连接的请求能力。ping
,该命令用于测试对应主机上的Redis服务是否正常开启。正常情况下,返回的信息为PONG。info
,该命令用于查看Redis服务器的统计信息。如内存、客户端连接诶数量、集群、持久化等信息。也可在info直接加上特定的名称,如info Memory
查看内存相关信息。select index
,选择指定的数据库实例,index即指定的数字索引。dbsize
,查看当前数据库实例存储的数据个数,即<k, v>的个数,也就是k的个数。keys *
,查看当前数据库实例存储的所有的key。flushdb
,清空当前数据库实例中的数据。flushall
,清空所有数据库实例中的数据。(慎用)config get *
,查看Redis中的所有的配置信息(即配置文件)。config get parameter
,查看Redis中的指定parameter配置信息,如port端口号等等
2. Redis中的数据结构
程序是用来处理数据的,而Redis是用来存储程序中出现的数据的。因为程序中出现较多的存储的数据类型有字符串、集合(list、set)、实体类等等。
为了更方便的为程序员提供服务,Redis针对程序中存在的数据形态,提供了五种数据结构,不同特点的数据可存储为不同的数据结构类型中。注意,无论哪种数据结构,Redis基本的存储方式就是<key, value>形式,key就相当于一条数据的主键。value是用于不同的数据类型。
string:用于存储简单的字符串。<key: value>,value就是需要存储的数据。(这是Redis中对基本的数据结构,虽然是字符串,但可以存储任意类型的数据。)
list:用于存储有序的列表。<key: value, value…>,即单个key,多个value,value之间有序且可重复(和放入的顺序保持一致)。
set:用于存储无序的集合。<key: value, value…>,即单个key,多个value,value之间无序且不可重复。
hash:用于存储实体类。<key, 对象(属性: 值; 属性: 值; …)>,即单个key,单个value,value中是<k,v>的集合。
zset:该类型针对set无序的情况,可针对某个情况对set进行排序。<key, value, value, …>,即单个key,多个有序value。注意,此处的有序和存放时的顺序无关,是根据一个参考值来对内容进行排序。如下图中的后面的数值,这时候,会自动根据数值来对其进行排序。
3. 备注
参考B站《动力节点》。