注册 登录

清河洛

Redis服务器端常用命令

qingheluo2019-09-02清河洛753
连接命令:client setname connection-name 为当前连接分配一个名字,用于识别当前正在与服务器进行连接的客户端 为了避免和client list命令的输出格式发生冲突,名字里不允许使用空格 要移除一个连接的名字, 可以将连接的名字设为空字符串"" 设置成功时返回OK client getname:返回client setname命令为连接设置的名字,没有设置名字返回空白client kill ip:port:关闭地址为 ip:port 的客户端,ip:port应该是client list命令输出的其中一行client list: ...

连接命令:

client setname connection-name

    为当前连接分配一个名字,用于识别当前正在与服务器进行连接的客户端
    为了避免和client list命令的输出格式发生冲突,名字里不允许使用空格
    要移除一个连接的名字, 可以将连接的名字设为空字符串"" 
    设置成功时返回OK

client getname:返回client setname命令为连接设置的名字,没有设置名字返回空白

client kill ip:port:关闭地址为 ip:port 的客户端,ip:port应该是client list命令输出的其中一行

client list:

    以人类可读的格式返回所有连接到服务器的客户端信息和统计数据
    命令返回多行字符串,这些字符串按以下形式被格式化:
        每个已连接客户端对应一行(以 LF分割)
        每行字符串由一系列"属性=值"形式的域组成,每个域之间以空格分开
        id=32 addr=127.0.0.1:57925 fd=12 name= age=1073 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
    以下是域的含义:
        id:连接的ID
        addr:客户端的地址和端口
        fd:套接字所使用的文件描述符
        name:连接的名称
        age:以秒计算的已连接时长
        idle:以秒计算的空闲时长
        flags:客户端flag(见下文)
        db:该客户端正在使用的数据库ID
        sub:已订阅频道的数量
        psub:已订阅模式的数量
        multi:在事务中被执行的命令数量
        qbuf:查询缓存的长度( 0 表示没有查询在等待)
        qbuf-free:查询缓存的剩余空间(0表示没有剩余空间)
        obl:输出缓存的长度
        oll:输出列表的长度(当输出缓存没有剩余空间时,回复被入队到这个队列里)
        omem:输出缓存的内存占用量
        events:文件描述符事件(见下文)
            r : 客户端套接字(在事件 loop 中)是可读的(readable)
            w : 客户端套接字(在事件 loop 中)是可写的(writeable)
        cmd:最近一次执行的命令
    flag域可能的值:
        O:客户端是 MONITOR 模式下的附属节点(slave)
        S:客户端是一般模式下(normal)的附属节点
        M:客户端是主节点(master)
        x:客户端正在执行事务
        b:客户端正在等待阻塞事件
        i:客户端正在等待 VM I/O 操作(已废弃)
        d:一个受监视(watched)的键已被修改, EXEC 命令将失败
        c : 在将回复完整地写出之后,关闭链接
        u : 客户端未被阻塞(unblocked)
        A : 尽可能快地关闭连接
        N : 未设置任何flag

shutdown [save | nosave]

    命令执行以下操作:
    1、停止所有客户端
    2、如果有至少一个保存点在等待,执行SAVE命令
    3、如果AOF选项被打开,更新AOF文件
    4、关闭redis服务器(server)
    如果持久化被打开的话,shutdown命令会保证服务器正常关闭而不丢失任何数据
    相对应的,假如只是单纯地执行save,然后再执行quit,在执行save之后,其他客户端可能和服务器进行了通讯,执行quit会造成数据丢失
    save和nosave修饰符
    通过使用可选的修饰符,可以修改shutdown命令的表现:
    save会强制让数据库执行保存操作,即使没有设定(configure)保存点
    nosave会阻止数据库执行保存操作,即使已经设定有一个或多个保存点
    执行失败时返回错误,执行成功时不返回任何信息,服务器和客户端的连接断开,客户端自动退出

配置命令

config get parameter:用于取得运行中的Redis服务器的配置参数的值,parameter参数可以使用通配符("*")

config set parameter value:动态地调整Redis服务器的运行时配置而无须重启(并没有修改配置文件,重启服务器设定会丢失),当设置成功时返回OK,否则返回一个错误

config rewrite

    把config set命令所做的配置修改写入到配置文件中
    重写会以非常保守的方式进行:
    原有redis.conf文件的整体结构和注释会被尽可能地保留
    如果一个选项已经存在于redis.conf文件中,对该选项的重写会在选项原本所在的位置(行号)上进行
    如果一个选项不存在于redis.conf文件中,且该选项被设置为默认值,那么不会将这个选项添加到重写后的redis.conf文件中
    如果一个选项不存在于redis.conf文件中,且该选项被设置为非默认值,那么这个选项将被添加到重写后的redis.conf文件的末尾
    不再使用的参数原本所在的行会被留白
    如果启动服务器时所指定的redis.conf文件已经不存在,重写命令会重新构建并生成出一个新的redis.conf文件
    但是,如果启动服务器时没有载入redis.conf文件,那么执行重写命令将引发一个错误
    如果配置重写成功则返回OK

config resetstat

    重置info命令中的某些统计数据,包括:
        Keyspace hits (键空间命中次数)
        Keyspace misses (键空间不命中次数)
        Number of commands processed (执行命令的次数)
        Number of connections received (连接服务器的次数)
        Number of expired keys (过期key的数量)
        Number of rejected connections (被拒绝的连接数量)
        Latest fork(2) time(最后执行 fork(2) 的时间)
        The aof_delayed_fsync counter(aof_delayed_fsync 计数器的值)
    总是返回 OK 

查看服务器信息及日志

info [section]

    以一种易于解释且易于阅读的格式,返回关 Redis服务器的各种信息和统计数值
    通过给定可选的参数section,可以让命令只返回某一部分的信息:
    server : 一般Redis服务器信息
    clients : 已连接客户端信息
    memory : 内存信息
    persistence : RDB 和 AOF 的相关信息
    stats : 一般统计信息
    replication : 主/从复制信息
    cpu : CPU 计算量统计信息
    commandstats : Redis 命令统计信息
    cluster : Redis 集群信息
    keyspace : 数据库相关的统计信息
    all : 返回所有信息
    default : 返回默认选择的信息(默认值)

time:返回当前服务器时间,返回一个包含两个字符串的列表: 第一个字符串是当前UNIX时间戳格式的时间,而第二个字符串是当前这一秒钟已经逝去的微秒数

slowlog

    slow log是Redis用来记录查询执行时间的日志系统
    查询执行时间不包括像客户端响应(talking)、发送回复等IO操作,而单单是执行一个查询命令所耗费的时间
    slow log保存在内存里面,读写速度非常快,不必担心因为开启slow log而损害Redis的速度
    slow log的行为由两个配置参数(slowlog-log-slower-than和slowlog-max-len)指定,分别设定最小记录微秒时间和最大记录条数
    slowlog命令:
    slowlog [get [number]]
        不提供number返回所有slow log,提供number则返回number指定条数的slow log
        返回的格式:
        1) 1) (integer) 12           # 唯一性(unique)的日志标识符
           2) (integer) 1324097834   # 被记录命令的执行时间点,以 UNIX 时间戳格式表示
           3) (integer) 16           # 查询执行时间,以微秒为单位
           4) 1) "config"            # 执行的命令,以数组的形式排列
              2) "get"               # 这里完整的命令是config get slowlog-max-len
              3) "slowlog-max-len"
        日志的唯一id只有在Redis服务器重启的时候才会重置,这样可以避免对日志的重复处理
    slowlog len:是当前日志的数量
    slowlog reset:清空所有slow log

调试命令

debug object key

    debug object是一个调试命令,它不应被客户端所使用。具体查看object命令获取更多信息。
    当key存在时,返回有关信息。

debug segfault:执行一个不合法的内存访问从而让Redis崩溃(Redis服务会停止),仅在开发时用于 BUG 模拟。

monitor:监控并实时打印出Redis服务器接收到的命令,调试用,总是返回OK。



网址导航