zoukankan      html  css  js  c++  java
  • Redis教程16-服务器常用命令使用参考1

    1.BGSAVE

    在后台异步(Asynchronously)保存当前数据库的数据到磁盘。

    BGSAVE 命令执行之后立即返回 OK ,然后 Redis fork 出一个新子进程,原来的 Redis 进程(父进程)继续处理客户端请求,而子进程则负责将数据保存到磁盘,然后退出。

    客户端可以通过 LASTSAVE 命令查看相关信息,判断 BGSAVE 命令是否执行成功。

    可以在 持久化文档 查看更多相关细节。

    可用版本:>= 1.0.0

    时间复杂度:O(N), N 为要保存到数据库中的 key 的数量。

    返回值:反馈信息。

    127.0.0.1:6379> bgsave
    Background saving started
    127.0.0.1:6379>

    2.CLIENT GETNAME

    CLIENT GETNAME

    返回 CLIENT SETNAME 命令为连接设置的名字。

    因为新创建的连接默认是没有名字的, 对于没有名字的连接, CLIENT GETNAME 返回空白回复。

    可用版本>= 2.6.9

    时间复杂度O(1)

    返回值

    如果连接没有设置名字,那么返回空白回复;
    如果有设置名字,那么返回名字。
    # 新连接默认没有名字
    
    redis 127.0.0.1:6379> CLIENT GETNAME
    (nil)
    
    # 设置名字
    
    redis 127.0.0.1:6379> CLIENT SETNAME hello-world-connection
    OK
    
    # 返回名字
    
    redis 127.0.0.1:6379> CLIENT GETNAME
    "hello-world-connection"                   

    3.CLIENT KILL

    CLIENT KILL ip:port

    关闭地址为 ip:port 的客户端。

    ip:port 应该和 CLIENT LIST 命令输出的其中一行匹配。

    因为 Redis 使用单线程设计,所以当 Redis 正在执行命令的时候,不会有客户端被断开连接。

    如果要被断开连接的客户端正在执行命令,那么当这个命令执行之后,在发送下一个命令的时候,它就会收到一个网络错误,告知它自身的连接已被关闭。

    可用版本>= 2.4.0

    时间复杂度O(N) , N 为已连接的客户端数量。

    返回值当指定的客户端存在,且被成功关闭时,返回 OK 。

    # 列出所有已连接客户端
    
    redis 127.0.0.1:6379> CLIENT LIST
    addr=127.0.0.1:43501 fd=5 age=10 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=32768 obl=0 oll=0 omem=0 events=r cmd=client
    
    # 杀死当前客户端的连接
    
    redis 127.0.0.1:6379> CLIENT KILL 127.0.0.1:43501
    OK
    
    # 之前的连接已经被关闭,CLI 客户端又重新建立了连接
    # 之前的端口是 43501 ,现在是 43504
    
    redis 127.0.0.1:6379> CLIENT LIST
    addr=127.0.0.1:43504 fd=5 age=0 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=32768 obl=0 oll=0 omem=0 events=r cmd=client

    4.CLIENT LIST

    CLIENT LIST

    以人类可读的格式,返回所有连接到服务器的客户端信息和统计数据。

    redis> CLIENT LIST
    addr=127.0.0.1:43143 fd=6 age=183 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=32768 obl=0 oll=0 omem=0 events=r cmd=client
    addr=127.0.0.1:43163 fd=5 age=35 idle=15 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=ping
    addr=127.0.0.1:43167 fd=7 age=24 idle=6 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=get

    可用版本>= 2.4.0

    时间复杂度O(N) , N 为连接到服务器的客户端数量。

    返回值

    命令返回多行字符串,这些字符串按以下形式被格式化:

    • 每个已连接客户端对应一行(以 LF 分割)
    • 每行字符串由一系列 属性=值 形式的域组成,每个域之间以空格分开

    以下是域的含义:

    • addr : 客户端的地址和端口
    • fd : 套接字所使用的文件描述符
    • age : 以秒计算的已连接时长
    • idle : 以秒计算的空闲时长
    • flags : 客户端 flag (见下文)
    • db : 该客户端正在使用的数据库 ID
    • sub : 已订阅频道的数量
    • psub : 已订阅模式的数量
    • multi : 在事务中被执行的命令数量
    • qbuf : 查询缓存的长度( 0 表示没有查询在等待)
    • qbuf-free : 查询缓存的剩余空间( 0 表示没有剩余空间)
    • obl : 输出缓存的长度
    • oll : 输出列表的长度(当输出缓存没有剩余空间时,回复被入队到这个队列里)
    • omem : 输出缓存的内存占用量
    • events : 文件描述符事件(见下文)
    • cmd : 最近一次执行的命令

    客户端 flag 可以由以下部分组成:

    • O : 客户端是 MONITOR 模式下的附属节点(slave)
    • S : 客户端是一般模式下(normal)的附属节点
    • M : 客户端是主节点(master)
    • x : 客户端正在执行事务
    • b : 客户端正在等待阻塞事件
    • i : 客户端正在等待 VM I/O 操作(已废弃)
    • d : 一个受监视(watched)的键已被修改, EXEC 命令将失败
    • c : 在将回复完整地写出之后,关闭链接
    • u : 客户端未被阻塞(unblocked)
    • A : 尽可能快地关闭连接
    • N : 未设置任何 flag

    文件描述符事件可以是:

    • r : 客户端套接字(在事件 loop 中)是可读的(readable)
    • w : 客户端套接字(在事件 loop 中)是可写的(writeable)
    为了 debug 的需要,经常会对域进行添加和删除,一个安全的 Redis 客户端应该可以对 CLIENT LIST 的输出进行相应的处理(parse),比如忽略不存在的域,跳过未知域,诸如此类。
  • 相关阅读:
    promise封装微信小程序的request
    css3实现loading效果--当页面加载过程中显示Loading的进度条,全部加载完成之后进度条消失
    解决H5微信浏览器中audio兼容-- 背景音乐无法自动播放
    h5微信浏览器复制粘贴--ios兼容问题的解决方法(clipboard.js插件)
    解决微信二次分享失败--后面被加上from=singlemessage&isappinstalled=0的解决方案
    h5微信分享
    mpvue微信小程序项目踩坑记录
    水塘抽样算法
    Redis批量删除脚本
    java9 模块化 jigsaw
  • 原文地址:https://www.cnblogs.com/no-celery/p/13740285.html
Copyright © 2011-2022 走看看