辛星浅析Redis中的服务器管理

来源:互联网 发布:115网盘会员充值淘宝 编辑:程序博客网 时间:2024/05/16 14:08

      Redis在设计之初就被定义为可以长时间不间断运行的服务进程,因此大多数系统配置参数都可以在不重新启动的情况下立即生效。即便是当前的持久化模式从AOF切换到RDB也无需重启。在Redis中,我们还有一些和服务器管理相关的命令,我们介绍如下:

      (1)config    get   parameter    主要用于读取服务器的运行时参数,但是并不是所有的配置参数都可以通过该命令进行读取。其中该命令的参数接受glob风格的模式匹配规则,因此如果参数中包含模式元字符,那么所有匹配的参数都将以key/value方式被列出。如果参数是*的话,那么该命令支持的所有参数都会被列出。它和redis.conf中不同的是,在命令中不能使用数量的缩写格式,比如GB、KB等等,只能使用表示字节数量的整数。

     (2)config  set  parameter  value   该命令用于重新配置Redis服务器的运行时参数,在设置成功后无需重启便可生效。然而并非所有的参数都可以通过该命令进行动态设置,我们可以通过config  get  *  来查看该命令支持哪些参数。如果想在一个命令中设置多个参数类型,比如在redis.conf中的配置文件中的save参数save  900  1  /save  300  10 ,在该命令中我们可以将多个key/value用双引号括起来,然后用空格隔开即可,比如config   set  save  "900 1 300 10".

    (3)config   resetstat     它给出reset  info命令给出的统计数字,它始终返回OK。

    (4)dbsize     返回当前打开的数据库中keys的数量。

    (5)flushdb    清空当前数据库中的所有keys。

    (6)info     获取跟服务器运行状况相关的一些统计数字。

    (7)save    设置RDB持久化模式的保存策略。

    (8)shutdown    停止所有的客户端,同时以阻塞的方式设置内存数据持久化。如果AOF模式被启用,则将缓存中的数据flush到AOF文件,同时推出服务器。

    (9)slaveof    host   port    该命令用于修改slave 服务器的复制设置。如果一个Redis服务器已经处于slave状态,那么slaveof  no  one命令将关闭当前服务器的被复制状态,与此同时将该服务器切换到master状态。该命令的参数将制定master服务器的监听IP和端口。还有一种情况是,当前服务器已经是另一个master的slave了,在执行该命令后,当前服务器将终止和之前master之间的复制关系,而将成为新的master的slave,之前master中的数据也将被清空,改为新master中的数据。然而如果在当前slave服务器上执行的是slaveof   no   one命令,那么该服务器只是中断与当前master的复制关系,并且升级为独立的master,其中的数据也不会被清空。

    (10)slowlog   subcommand  [argument]   该命令主要用于读取执行时间较长的命令。其中执行时间的评判标准仅仅为命令本身的执行时间,并不包括网络较好怒时间。和该命令相关的配置参数主要有两个,第一个就是执行之间的阀值,以毫秒为单位,即执行时间超过该值的命令都会被存入slowlog队列,以供命令读取。第二个是slowlog队列的长度,如果当前命令在存入之前,该队列中个的命令已经等于该参数,那么在命令进入之前,需要将队列中最老的命令移出队列。这样可以保证该队列所占用的内存总量保持在一个相对恒定的大小。由于slowlog队列不会被持久化到磁盘,因此Redis在收集命令时不会对性能产生很大的影响。通常我们可以将参数"slowlog-log-slower-than"设置为0,以便收集所有命令的执行时间。该命令还可以包含如下几个子命令:

          slowlog   get  n  :从slowlog队列中读取命令信息,其中n表示最近n条命令的信息。

          slowlog      len  :获取slowlog队列的长度。

          slowlog    reset:清空slowlog队列的内容。



















0 0
原创粉丝点击