目录
- 安装Redis
- 启动和停止Redis
- 启动Redis
- 停止Redis
- Redis命令行客户端
- 发送命令
- 命令行返回值
- 配置
- 启用配置文件
- CONFIG SET
- CONFIG GET
- 多数据库
- Redis数据库和关系型数据库的区别
安装Redis
在POSIX系统中安装
在OS X系统中安装
在Windows中安装
启动和停止Redis
Redis可执行文件说明
文件名 | 说明 |
redis-server | Redis 服务器 |
redis-cli | Redis 命令行客户端 |
redis-benchmark | Redis 性能测试工具 |
redis-check-of | AOF 文件修复工具 |
redis-check-dump | RDB 文件检查工具 |
AOF
:AOF持久化,将Redis操作日志以追加的方式写入文件。RDB
:RDB持久化,将Redis在内存中的数据记录定时dumpd到磁盘上。
启动Redis
- 直接启动
直接运行 redis-server 即可启动 Redis。
redis-server
Redis服务器默认会使6379端口,通过--port
参数可以自定义端口号。
redis-server --port 6380
- 初始化脚本启动
停止Redis
强行终止Redis进程可能会导致数据丢失。正确停止Redis的方式是向Redis发送SHUTDOWN
命令。
redis-cli SHUTDOWN
当Redis收到SHUTDOWN命令后,会先断开所有客户端连接,然后根据配置执行持久化,最后完成退出。
使用kill Redis进程的PID
也可以正常结束Redis,效果与发送SHUTDOWN命令一样。
Redis命令行客户端
redis-cli(Redis Command Line Interface)是Redis自带的基于命令行的Redis客户端,也是我们学习和测试Redis的重要工具。
发送命令
通过redis-cli向Redis发送命令有两种方式。
第一种方式是将命令作为redis-cli的参数执行。
// 连接Redis
redis-cli -h 127.0.0.1 -p 6379
// 测试客户端与Redis的连接是否正常
redis-cli PING
PONG
第二种方式是不附带参数运行redis-cli,这样会进入交互模式,可以自由输入命令。
redis-cli
redis 127.0.0.1:6379>PING
PONG
redis 127.0.0.1:6379>
命令行返回值
命令行的返回值有5种类型
- 状态回复(status reply)
状态回复直接显示状态信息。比如向Redis发送SET命令设置某个键的值,Redis会回复状态OK表示设置成功。
127.0.0.1:6379> SET hello world
OK
- 错误回复
当出现命令不存在或命令格式有错误等情况是Redis会返回错误回复(error reply)。错误回复以
(error)
开头,并在后面跟上错误信息。如执行一个不存在的命令:
127.0.0.1:6379> ERRORCOMMEND
(error) ERR unknown command 'ERRORCOMMEND'
- 整数回复
Redis没有整数类型,但是提供了一些用于整数操作的命令,如递增键值的INCR命令会以整数形式返回递增后的值、获取当前数据库中键的数据的DBSIZE命令等。整数回复(integer reply)以
(integer)
开头,并在后面跟上整数数据
127.0.0.1:6379> DBSIZE
(integer) 4
- 字符串回复(bulk reply)
当请求一个字符串类型键的键值或一个类型键中的某个元素时就会得到一个字符串回复。字符串回复以双引号包裹。
127.0.0.1:6379> GET hello
"world"
- 多行字符串回复(multi-bulk reply)
当请求一个非字符串类型键的元素列表时就会收到多行字符串回复。多行字符串回复中的每行字符串都以一个序号开头。
127.0.0.1:6379> KEYS *
1) "set-key"
2) "hello"
3) "hash-key"
4) "zset-key"
5) "list-key"
配置
启用配置文件
通过启动参数传递同名的配置选项会覆盖配置文件中的参数
redis-server /path/to/redis.conf
CONFIG SET
在Redis运行时通过 CONFIG SET 命令在不重新启动Redis的情况下动态修改部分Redis配置
127.0.0.1:6379>CONFIG SET loglevel warning
OK
CONFIG GET
在Redis运行时通过 CONFIG GET 命令获得Redis当前的配置情况
127.0.0.1:6379> CONFIG GET loglevel
1) "loglevel"
2) "warning"
多数据库
Redis是一个字典结构的存储服务器,一个Redis实例提供了多个用来存储数据的字典,客户端可以指定将数据存储在哪个字典中。一个字典可以理解为一个单独的数据库。
每个数据库对外都是以一个从0开始的递增数字命名,Redis默认支持16个数据库。
客户端与Redis建立连接后会自动选择0号数据库,可以使用SELECT
命令更换数据库
127.0.0.1:6379> SELECT 1
OK
Redis数据库和关系型数据库的区别
- Redis 不支持自定义数据库的名字
- Redis 不支持为每个数据库设置不同的访问密码
- 多个数据库之间不是完全隔离,比如
FLUSHALL
命令可以清空一个Redis实例中所有数据库的数据