* [在Docker中使用Redis] * [Redis-Cli] * [命令的返回值类型] * [Redis中的多数据库] * [基础命令]
Redis是REmote DIctionary Server(远程字典服务器)的缩写,它以字典结构存储数据,并容许其余应用经过TCP协议读写字典中的内容。redis
Redis数据库中的全部数据都存储在内存中。因为内存的读写速度远快于硬盘,所以Redis在性能上对比其余基于硬盘存储的数据库有很是明显的优点,在一台普通的笔记本电脑上,Redis能够在一秒内读写超过十万个键值。同时Redis也支持持久化数据到硬盘。docker
在Docker中学习和使用Redis很是方便,免去了直接在机器上安装:数据库
$ docker run -itd --name redis-test -p 6379:6379 redis:latest
redis的默认监听的端口为6379,而后就能够进入redis容器了:bash
$ docker exec -it redis-test /bin/bash
redis-cli是Redis的命令行客户端,能够经过cli向Redis发送一系列命令。
在前面docker exec进入redis容器后,就可使用redis-cli了,能够将命令做为redis-cli的参数,好比用于测试客户端与Redis链接是否正常的PING命令,能够直接这样输入:服务器
$ redis-cli PING
也能够不附带参数运行redis-cli,这样会进入交互模式,而后直接输入命令:markdown
$ redis-cli redis 127.0.0.1:6379 > PING
两种方式下,只要链接正常,都会受到PONG回复。
Redis中的命令是不区分大小写的,但这里为了直观,用大写来表示。性能
redis执行命令后的返回值有下面几类:学习
状态回复(status reply)
状态回复是最简单的一种回复,好比向Redis发送SET命令设置某个键的值时,Redis会回复状态OK表示设置成功。以前执行PING命令收到的PONG也属于状态回复。测试
错误回复(error reply)
命令执行失败会返回错误回复,这类回复以(error)开头。命令行
整数回复(integer reply)
对于相似增长键值、获取键数量等命令会返回整数结果,整数回复与(integer)开头。
字符串回复(bulk reply)
字符串回复是最多见的一种回复类型,当请求一个字符串类型键的键值或一个其余类型键中的某个元素时就会获得一个字符串回复。字符串回复以双引号包裹。但若是键不存在时会返回空,用(nil)表示。
多行字符串回复(multi-bulk reply)
这种回复也比较常见,好比当请求一个非字符串类型键的元素列表时就会收到多行字符串回复,多行字符串回复中的每行字符串都以一个序号开头,如获取全部的键:
redis 127.0.0.1:6379 > KEYS * 1) "k1" 2) "k2"
一个Redis实例提供了多个用来存储数据的字典,客户端能够指定将数据存储在哪一个字典中。这与在一个关系数据库实例中能够建立多个数据库相似,因此能够将其中的每一个字典都理解成一个独立的数据库。
Redis默认支持16个数据库,用数字命名,分别为0-15。数据库的数量能够经过配置来修改。客户端与Redis创建链接后会自动选择0号数据库,能够自行切换,切换到1号数据库的命令为:
SELECT 1
Redis中的数据库与咱们常规理解的关系型数据库有很大的区别:
鉴于上述区别,将Redis理解为命名空间可能更为合适。不一样的redis数据库并不适宜存储不一样应用程序的数据,对于多应用的使用,推荐的方式是分别使用不一样的Redis实例,因为Redis很是轻量级,一个空Redis实例占用的内存只有1MB左右,因此不用担忧多个Redis实例会额外占用不少内存。
KEYS pattern
pattern支持通配符:
EXISTS key
若是存在返回(integer) 1,不存在返回(integer) 0。
DEL key1 DEL key1 key2 ...
返回整数类型表示被删除的个数。若是键不存在,返回0。
DEL命令不支持通配符,但能够组合KEYS命令来实行: