首页 > 数据库 >Redis---客户端命令

Redis---客户端命令

时间:2022-08-16 19:11:16浏览次数:40  
标签:127.0 0.1 Redis --- 6379 CLIENT 客户端

1.前言

Redis 提供了一些操作客户端(client)的命令,比如查询所有已连接到服务器的客户端数量,控制客户端的连接状态(关闭或者挂起)等。通过客户命令我们可以轻松的实现对客户端的管理、控制。

Redis 服务器通过监听 TCP 端口的方式来接受客户端的连接。当一个连接建立后,Redis 会自动执行以下过程:

  • 首先客户端 socket 被设置为非阻塞模式,这是因为 Redis 在网络事件处理上采用了非阻塞式 IO(即 IO 多路复用模型);
  • 其次设置 socket 的 TCP_NODELAY 属性,从而禁用 Nagle 算法;
  • 最后创建一个可读的文件事件,用它来监听客户端 socket 的数据发送。


Redis 使用命令的格式向客户端输入数据,这个数据量是非常小的。当向客户端输入命令后,我们希望能快速的得到服务器的应答,也就是低延时性,但如果开启了Nagle算法就会出现频繁延时的现象,导致用户体验极差。

TCP_NODELAY 控制是否开启 Nagle 算法,该算法可以提高广域网传输效率,减少分组的报文个数,适合传输体量较大的数据。

2.Redis IO多路复用

Redis 的底层是一个单线程模型,单线程指的是使用一个线程来处理所有的网络事件请求,这样就避免了多进程或者多线程切换导致的 CPU 消耗,而且也不用考虑各种锁的问题。

Redis 为了充分利用单线程,加快服务器的处理速度,它采用 IO 多路复用模型来处理客户端与服务端的连接,这种模型有三种实现方式,分别是 select、poll、epoll。Redis 正是采用 epoll 的方式来监控多个 IO 事件。当客户端空闲时,线程处于阻塞状态;当一个或多个 IO 事件触发时(客户端发起网路连接请求),线程就会从阻塞状态唤醒,并同时使用epoll来轮询触发事件,并依次提交给线程处理。

注意:“多路”指的是多个网络连接,“复用”指的是复用同一个线程。多路 IO 复用技术可以让单个线程高效的处理多个连接请求。

3.客户端最大连接数

在 Redis 配置文件中,有一个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"

4.常用命令

客户端常用命令
命令说明
CLIENT LIST 以列表的形式返回所有连接到 Redis 服务器的客户端。
CLIENT SETNAME 设置当前连接的名称。
CLIENT GETNAME 获取通过 CLIENT SETNAME 命令设置的服务名称。
CLIENT PAUSE 挂起客户端连接,将所有客户端挂起指定的时间(以毫秒为计算)。
CLIENT KILL 关闭客户端连接。
CLIENT ID 返回当前客户端 ID。
CLIENT REPLY 控制发送到当前连接的回复,可选值包括 on|off|skip。

5.命令应用应用

下面看一组简单的使用示例,如下所示:

127.0.0.1:6379> CLIENT ID
(integer) 2557
127.0.0.1:6379> CLIENT LIST
id=2556 addr=127.0.0.1:64684 fd=30 name= age=2422 idle=339 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=client
id=2557 addr=127.0.0.1:49502 fd=43 name= age=537 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=26 qbuf-free=32742 obl=0 oll=0 omem=0 events=r cmd=client
127.0.0.1:6379> CLIENT REPLY ON
OK
127.0.0.1:6379> CLIENT SETNAME "www.biancheng.net"
OK
127.0.0.1:6379> CLIENT GETNAME
"www.biancheng.net"
127.0.0.1:6379> CLIENT KILL 127.0.0.1:49502
OK

 

标签:127.0,0.1,Redis,---,6379,CLIENT,客户端
From: https://www.cnblogs.com/jiajunling/p/16592662.html

相关文章

  • 四、《微服务:从设计到部署》--服务发现
    客户端发现(client-sidediscovery)当使用客户端发现模式时,客户端负责确定可用服务实例的网络位置和请求负载均衡。客户端查询服务注册中心(serviceregistry),它是可用服务实......
  • antd-vue table 表头同时存在sorter,Slots 排序升序失效“”解决“”
     产品给出的需求是这个客户数同时有提示跟升序于是乎我用了 Slots自定义表头但是发现排序只能降序无法升序 后来发现是排序的事件绑定到了自定义表头上面去了 ......
  • Redis---zset有序集合(底层原理+图解)
    1.前言顾名思义,Rediszset(有序集合)中的成员是有序排列的,它和set集合的相同之处在于,集合中的每一个成员都是字符串类型,并且不允许重复;而它们最大区别是,有序集合是有序的,s......
  • 第三章 2 基本运算符-数学运算 习题
    第三章2基本运算符-数学运算习题1、python运算符中用来计算整数商的是//2、语句x=3==3,5,执行结束后,变量x的值为(True,5)3、已知x=3,那么执行语句x+......
  • Redis实现延迟队列
     一、延迟队列进入该队列的消息会被延迟消费的队列,一般的队列,进入队列后会进行排队依次消费掉二、使用场景需要进行延迟消费的场景,本文举例为某本书籍更新了章节,待内......
  • Redis---hash哈希散列
    1.前言Redishash(哈希散列)是由字符类型的field(字段)和value组成的哈希映射表结构(也称散列表),它非常类似于表格结构。在hash类型中,field与value一一对应,且不允许重......
  • Linux--cheat命令详解
    今天给大家介绍一个Linux超级实用命令,有了这个命令,你就可以愉快使用Linux上几乎所有常用命令了,再也不用担心记不住那么多选项啦~我们知道,Linux系统总共有300~500个......
  • Redis---set集合
    1.前言Redisset(集合)遵循无序排列的规则,集合中的每一个成员(也就是元素,叫法不同而已)都是字符串类型,并且不可重复。Redisset是通过哈希映射表实现的,所以它的添加、删除......
  • 算法-实验一
    算法设计与分析实验一第一题公元5世纪,我国古代数学家张丘建在他所撰写的《算经》中,提出了这样的一个问题:“鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡,问鸡翁、......
  • qt5.9 +vs2015 32bit 错误“-1: error: LNK1158: 无法运行“rc.exe”
    开发平台qt5.9.0+vs201532bit....在准备运行vs2015及安装了vs2019后,运行原来可以运行的程序时,出现了错误“-1:error:LNK1158:无法运行“rc.exe”复制了“C:\Progra......