赞
踩
#注意:在开启客户端之前,你要确定 Redis 服务器已经开启。
redis-cli
[root@VM-0-3-centos ~]# redis-cli -a 13xxxx
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
127.0.0.1:6379> ping
PONG
127.0.0.1:6379>
#通过执行命令 PING,以检查服务器是否正在运行,结果返回 PONG,说明已经成功连接了本地 Redis 服务器。
#redis-cli -a 密码 -p 6379 --raw 启动的时候解决乱码的
C:\Users\Administrator>redis-cli -h host -p port -a password
参数说明:
如何连接到 Redis 远程服务器。服务器在主机 IP 是 121.x.x.x,端口号为 6379 ,密码为 132xxxx,使用git bash工具进行测试。
CNCLUKZK@LAPTOP-HGE63E13 MINGW64 /e/zkNote/typora-user-images
$ redis-cli -h 121.x.x.x -p 6379 -a xxxxx
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
ping
PONG
Tab
键自动补全,并且可以通过HELP
命令查看帮助信息,如下所示:127.0.0.1:6379> help set
SET key value [NX|XX] [GET] [EX seconds|PX milliseconds|EXAT unix-time-seconds|PXAT unix-time-milliseconds|KEEPTTL]
summary: Set the string value of a key
since: 1.0.0
group: string
127.0.0.1:6379> help mset
MSET key value [key value ...]
summary: Set multiple keys to multiple values
since: 1.0.1
group: string
Redis 提供了一些操作客户端(client)的命令,比如查询所有已连接到服务器的客户端数量,控制客户端的连接状态(关闭或者挂起)等。通过客户端命令我们可以轻松的实现对客户端的管理、控制。
Redis 服务器通过监听 TCP 端口的方式来接受客户端的连接。当一个连接建立后,Redis 会自动执行以下过程:
Redis 使用命令的格式向客户端输入数据,这个数据量是非常小的。当向客户端输入命令后,我们希望能快速的得到服务器的应答,也就是低延时性,但如果开启了Nagle
算法就会出现频繁延时的现象,导致用户体验极差。
TCP_NODELAY 控制是否开启 Nagle 算法,该算法可以提高广域网传输效率,减少分组的报文个数,适合传输体量较大的数据。
epoll
来轮询触发事件,并依次提交给线程处理。Redis的实际处理速度彻底依靠主进程的执行效率Epoll是Linux内核为处理大批量文件描述符而做了改进的epoll,是Linux下多路复用IO接口select/poll的加强版本,它能显著提升程序在大量并发链接中只有少许活跃的状况下的系统CPU利用率
注意:“多路”指的是多个网络连接,“复用”指的是复用同一个线程。多路 IO 复用技术可以让单个线程高效的处理多个连接请求。
redis 6 支持多线程是指网络io、分发存储等用多线程 ,读写执行命令还是单线程,默认是关闭多线程的。需要去设置配置文件的,开启多线程不能大于机器和核数
多线程应用目的,为了提高资源利用率。在涉及到硬盘数据时,CPU在执行时会有很多时间阻塞到IO,采用多线程可以利用阻塞这段时间。比如:删除操作,对于一些大键值对的删除操作,通过多线程非阻塞地释放内存空间也能减少对 Redis 主线程阻塞的时间,提高执行的效率,因此引入了多线程
命令 | 说明 |
---|---|
CLIENT LIST | 以列表的形式返回所有连接到 Redis 服务器的客户端。 |
CLIENT SETNAME | 设置当前连接的名称。 |
CLIENT GETNAME | 获取通过 CLIENT SETNAME 命令设置的服务名称。 |
CLIENT PAUSE | 挂起客户端连接,将所有客户端挂起指定的时间(以毫秒为计算)。 |
CLIENT KILL | 关闭客户端连接。 |
CLIENT ID | 返回当前客户端 ID。 |
CLIENT REPLY | 控制发送到当前连接的回复,可选值包括 on|off|skip。 |
maxclients
的配置项,它指定了连接到 Redis 服务器的最大客户端数量。其默认值是 10000。配置项如下所示:127.0.0.1:6379> config get maxclients
1) "maxclients"
2) "10000"
#更改最大连接数量
127.0.0.1:6379> config set maxclients 20000
OK
127.0.0.1:6379> config get maxclients
1) "maxclients"
2) "20000"
#返回当前客户端 ID。 remote:0>client id "2058" #返回所有连接到 Redis 服务器的客户端。 remote:0>client list "id=2058 addr=110.xx.xx.xx:5518 laddr=172.xx.xx.xx:6379 fd=8 name= age=20733 idle=0 flags=N db=0 sub=0 psub=0 ssub=0 multi=-1 qbuf=26 qbuf-free=20448 argv-mem=10 multi-mem=0 rbs=1024 rbp=0 obl=0 oll=0 omem=0 tot-mem=22298 events=r cmd=client|list user=default redir=-1 resp=2 id=2079 addr=127.0.0.1:45800 laddr=127.0.0.1:6379 fd=9 name= age=49 idle=30 flags=N db=0 sub=0 psub=0 ssub=0 multi=-1 qbuf=0 qbuf-free=0 argv-mem=0 multi-mem=0 rbs=1024 rbp=0 obl=0 oll=0 omem=0 tot-mem=1800 events=r cmd=config|get user=default redir=-1 resp=2 " remote:0>client getname null #名字不能有空格 remote:0>client setname "redis_desktop_manager" "OK" remote:0>client getname "redis_desktop_manager
从 3.0 版本开始,Redis 已经实现了对 Redis-cluster 集群部署的支持。
Redis 提供了诸多操作服务器的命令,这些命令都有着各自重要的作用,比如BGSAVE
命令,用异步的方式将 Redis 数据库的数据同步到本地磁盘中,实现数据的持久化存储,这对服务器的数据安全有着重要的作用。
常用的Redis 服务器命令:
命令 | 说明 |
---|---|
BGREWRITEAOF | 在后台以异步的方式执行一个 AOF 文件的重写操作,对源文件进行压缩,使其体积变小。 AOF 是实现数据持久化存储的方式之一。 |
BGSAVE | 在后台执行初始化操作,并以异步的方式将当前数据库的数据保存到磁盘中。 |
CLIENT KILL [ip:port] [ID client-id] | 关闭客户端连接。 |
CLIENT LIST | 获取连接到服务器的客户端连接列表。 |
CLIENT GETNAME | 获取当前连接客户端的名称。 |
CLIENT PAUSE timeout | 使服务器在指定的时间停止执行来自客户端的命令。 |
CLIENT SETNAME connection-name | 设置当前连接客户端的名称。 |
COMMAND | 返回所有 Redis 命令的详细描述信息。 |
COMMAND COUNT | 此命令用于获取 Redis 命令的总数。 |
COMMAND GETKEYS | 获取指定命令的所有键。 |
INFO [section] | 获取 Redis 服务器的各种信息和统计数值。 |
COMMAND INFO command-name [command-name …] | 用于获取指定 Redis 命令的描述信息。 |
CONFIG GET parameter | 获取指定配置参数的值。 |
CONFIG REWRITE | 修改启动 Redis 服务器时所指定的 redis.conf 配置文件。 |
CONFIG SET parameter value | 修改 Redis 配置参数,无需重启。 |
CONFIG RESETSTAT | 重置 INFO 命令中的某些统计数据。 |
DBSIZE | 返回当前数据库中 key 的数量。 |
DEBUG OBJECT key | 获取 key 的调试信息。当 key 存在时,返回有关信息;当 key 不存在时,返回一个错误。 |
DEBUG SEGFAULT | 使用此命令可以让服务器崩溃。 |
FLUSHALL | 清空数据库中的所有键。 |
FLUSHDB | 清空当前数据库的所有 key。 |
LASTSAVE | 返回最近一次 Redis 成功将数据保存到磁盘上的时间,以 UNIX 格式表示。 |
MONITOR | 实时打印出 Redis 服务器接收到的命令。 |
ROLE | 查看主从实例所属的角色,角色包括三种,分别是 master、slave、sentinel。 |
SAVE | 执行数据同步操作,将 Redis 数据库中的所有数据以 RDB 文件的形式保存到磁盘中。 RDB 是 Redis 中的一种数据持久化方式。 |
SHUTDOWN [NOSAVE] [SAVE] | 将数据同步到磁盘后,然后关闭服务器。 |
SLAVEOF host port | 此命令用于设置主从服务器,使当前服务器转变成为指定服务器的从属服务器, 或者将其提升为主服务器(执行 SLAVEOF NO ONE 命令)。 |
SLOWLOG subcommand [argument] | 用来记录查询执行时间的日志系统。 |
SYNC | 用于同步主从服务器。 |
SWAPDB index index | 用于交换同一 Redis 服务器上的两个数据库,可以实现访问其中一个数据库的客户端连接,也可以立即访问另外一个数据库的数据。 |
TIME | 此命令用于返回当前服务器时间。 |
#查看主从实例所属的角色 :0>role 1) "master" 2) "0" 3) #查看redis命令的描述信息 remote:0>command info lpush zadd 1) 1) "lpush" 2) "-3" 3) 1) "write" 2) "denyoom" 3) "fast" 4) "1" 5) "1" 6) "1" 7) 1) "@write" 2) "@list" 3) "@fast" 8) 9) 1) 1) "flags" 2) 1) "RW" 2) "insert" 3) "begin_search" 4) 1) "type" 2) "index" 3) "spec" 4) 1) "index" 2) "1" 5) "find_keys" 6) 1) "type" 2) "range" 3) "spec" 4) 1) "lastkey" 2) "0" 3) "keystep" 4) "1" 5) "limit" 6) "0" 10) 2) 1) "zadd" 2) "-4" 3) 1) "write" 2) "denyoom" 3) "fast" 4) "1" 5) "1" 6) "1" 7) 1) "@write" 2) "@sortedset" 3) "@fast" 8) 9) 1) 1) "flags" 2) 1) "RW" 2) "update" 3) "begin_search" 4) 1) "type" 2) "index" 3) "spec" 4) 1) "index" 2) "1" 5) "find_keys" 6) 1) "type" 2) "range" 3) "spec" 4) 1) "lastkey" 2) "0" 3) "keystep" 4) "1" 5) "limit" 6) "0" 10) #最近一次执行数据持久化存储的时间 remote:0>lastsave "1670150012" #实时打印redis服务器接收的命令 127.0.0.1:6379> monitor OK 1670168000.366344 [0 110.19.110.129:5518] "zrange" "height" "0" "9" 1670168046.890580 [0 110.19.110.129:5518] "role" 1670168275.620122 [0 110.19.110.129:5518] "command" "info" "lpush" "zadd" 1670168329.479631 [0 110.19.110.129:5518] "lastsave" 1670168333.407452 [0 110.19.110.129:5518] "lastsave" 查看当前服务器时间 #第一个字符串是当前时间以 UNIX 时间戳格式表示 #第二个字符串表示:当前这一秒钟已经逝去的微秒数 remote:0>time 1) "1670168383" 2) "445941" #查看前3条日志信息 remote:0>slowlog get 3 1) 1) "2" 2) "1669866989" 3) "200629" 4) 1) "COMMAND" 2) "DOCS" 5) "127.0.0.1:33854" 6) "" 2) 1) "1" 2) "1669864245" 3) "24343" 4) 1) "scan" 2) "0" 3) "MATCH" 4) "*" 5) "COUNT" 6) "10000" 5) "110.19.110.129:4672" 6) "" 3) 1) "0" 2) "1669864242" 3) "40306" 4) 1) "INFO" 5) "110.19.110.129:4672" 6) "" #共有多少条日志记录 remote:0>slowlog len "3" #清空所有日志记录 remote:0>slowlog reset "OK" remote:0>slowlog len "0" #用于同步主从服务器数据 remote:0>sync
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。