redis学习教程四《管理、备份、客户端连接》
一:Redis服务器命令
Redis服务器命令
下表列出了与Redis服务器相关的一些基本命令。
序号 | 命令 | 说明 |
---|---|---|
1 | BGREWRITEAOF | 异步重写仅追加的文件 |
2 | BGSAVE | 将数据集异步保存到磁盘 |
3 | CLIENT KILL [ip:port] [ID client-id] | 杀死或断开指定的客户端的连接 |
4 | CLIENT LIST | 获取到服务器的客户端连接列表 |
5 | CLIENT GETNAME | 获取当前连接的名称 |
6 | CLIENT PAUSE timeout | 在指定时间内停止处理来自客户端的命令 |
7 | CLIENT SETNAME connection-name | 设置当前连接名称 |
8 | CLUSTER SLOTS | 获取群集插槽到节点映射的数组 |
9 | COMMAND | 获取Redis命令详细信息的数组 |
10 | COMMAND COUNT | 获取Redis命令的总数 |
11 | COMMAND GETKEYS | 提取键给出一个完整的Redis的命令 |
12 | BGSAVE | 将数据集异步保存到磁盘 |
13 | COMMAND INFO command-name [command-name …] | 获取特定Redis命令详细信息的数组 |
14 | CONFIG GET parameter | 获取配置参数的值 |
15 | CONFIG REWRITE | 使用内存中配置来重写配置文件 |
16 | CONFIG SET parameter value | 将配置参数设置为给定值 |
17 | CONFIG RESETSTAT | 重置由INFO返回的统计信息 |
18 | DBSIZE | 返回所选数据库中的键数量 |
19 | DEBUG OBJECT key | 获取有关键的调试信息 |
20 | DEBUG SEGFAULT | 使服务器崩溃 |
21 | FLUSHALL | 从所有数据库中删除所有键 |
22 | FLUSHDB | 删除当前数据库中的所有键 |
23 | INFO [section] | 获取有关服务器的信息和统计信息 |
24 | LASTSAVE | 获取上次成功保存到磁盘的UNIX时间戳 |
25 | MONITOR | 监听服务器实时接收的所有请求 |
26 | ROLE | 返回实例在复制上下文中的角色 |
27 | SAVE | 将数据集同步保存到磁盘 |
28 | SHUTDOWN [NOSAVE] [SAVE] | 将数据集同步保存到磁盘,然后关闭服务器 |
29 | SLAVEOF host port | 使服务器成为另一个实例的从属,或将其提升作为主服务器 |
30 | SLOWLOG subcommand [argument] | 管理Redis慢查询日志 |
31 | SYNC | 用于复制的命令 |
32 | TIME | 返回当前服务器的时间 |
二:Redis备份
Redis数据库可以使用安全的方案,使得进行连接的任何客户端在执行命令之前都需要进行身份验证。要保护Redis安全,需要在配置文件中设置密码。
示例
下面的示例显示了保护Redis实例的步骤。
127.0.0.1:6379> CONFIG get requirepass
1) "requirepass"
2) ""
Shell
默认情况下,此属性为空,这表示还没有为此实例设置密码。您可以通过执行以下命令更改此属性。
127.0.0.1:6379> CONFIG set requirepass "yiibai"
OK
127.0.0.1:6379> CONFIG get requirepass
1) "requirepass"
2) "yiibai" //Shell
设置密码后,如果任何客户端运行命令而不进行身份验证,则会返回一个(error) NOAUTH Authentication required.的错误信息。 因此,客户端需要使用AUTH命令来验证。
语法
以下是AUTH命令的基本语法。
127.0.0.1:6379> AUTH password
//Shell
示例
127.0.0.1:6379> AUTH "yiibai"
OK
127.0.0.1:6379> SET mykey "Test value"
OK
127.0.0.1:6379> GET mykey
"Test value"
三: 客户端连接
Redis在配置的监听TCP端口和Unix套接字上等待和接受客户端的连接(如果已启用)。 当接受新的客户端连接时,执行以下操作 -
- 由于Redis使用复用和非阻塞
I/O
,因此客户端套接字处于非阻塞状态。 - 设置
TCP_NODELAY
选项是为了确保连接不延迟。 - 创建可读文件事件,以便Redis能够在套接字上读取新数据时收集客户端查询。
最大客户数
在Redis配置文件(redis.conf
)中,有一个名称为maxclients
的属性,它描述了可以连接到Redis的客户端的最大数量。
以下是命令的基本语法。
127.0.0.1:6379> config get maxclients
1) "maxclients"
2) "3984"
//Shell
默认情况下,此属性设置为10000
(取决于操作系统的文件描述符限制的最大数量),但您可以更改此属性。
示例
在以下示例中,我们已将客户端的最大数目设置为100000
,并启动服务器。
yiibai@ubuntu:~$ redis-server --maxclients 100000
//Shell
客户端命令
编号 | 命令 | 描述 |
---|---|---|
1 | CLIENT LIST | 返回连接到Redis服务器的客户端列表 |
2 | CLIENT SETNAME | 为当前连接分配/设置新的名称 |
3 | CLIENT GETNAME | 返回由CLIENT SETNAME 设置的当前连接的名称 |
4 | CLIENT PAUSE | 这是一个连接控制命令,能够将所有Redis客户端按指定的时间量(以毫秒为单位)挂起 |
5 | CLIENT KILL | 此命令关闭指定的客户端连接。 |
注:关闭服务器
redis-cli进入redis客户端 然后shutdown即可 提示需要验证用户 用AUTH password验证之后关闭即可