redis底层算法_Redis 命令

redis底层算法_Redis 命令Redis底层函数详解 1. serverCron 函数 它负责管理服务器的资源,并维持服务器的正常运行。在执行 serverCron 函数的过程中会调用相关的子函数,如 trackOperation

Redis底层函数详解

Redis底层函数详解

  1. serverCron 函数

    它负责管理服务器的资源,并维持服务器的正常运行。在执行 serverCron 函数的过程中会调用相关的子函数,如 trackOperationsPerSecond、SigtermHandler、clientsCron、databasesCron 等函数。默认情况下,每隔 100 毫秒执行一次 serverCron 函数

  2. trackOperationsPerSecond 函数

    是 serverCron 函数的一个子函数。采用抽样计算的方式,计算并记录服务器在最近 1 秒内处理的命令请求数量。可以通过 INFO stats 命令来查看(instantaneous_ops_per_sec 属性)

    127.0.0.1:6379> info stats
    # Stats
    total_connections_received:1
    total_commands_processed:4
    instantaneous_ops_per_sec:0
    total_net_input_bytes:133
    total_net_output_bytes:5948156
    instantaneous_input_kbps:0.00
    instantaneous_output_kbps:0.00
    rejected_connections:0
    sync_full:0
    sync_partial_ok:0
    sync_partial_err:0
    expired_keys:0
    evicted_keys:0
    keyspace_hits:0
    keyspace_misses:0
    pubsub_channels:0
    pubsub_patterns:0
    latest_fork_usec:0
    migrate_cached_sockets:0
    

    代码100分

  3. sigtermHandler 函数

    sigtermHandler 函数是一个 Redis 服务器进程的 SIGTERM 信号关联处理器。在 Redis 服务器启动的时候会调用执行 sigtermHandler 函数,它负责在服务器接收到 SIGTERM 信号时,打开服务器状态的 shutdown_asap 标识。

    在每次执行服务器资源管理函数 serverCron 的时候,都会先对服务器状态的 shutdown_asap 属性的值进行判断,再决定是否关闭服务器。当 shutdown_asap 属性的值为 1 时,关闭服务器;当 shutdown_asap 属性的值为 0 时,什么也不做。

  4. clientsCron 函数

    它会对一定数量的客户端进行如下检查。

    ● 检查这个客户端与服务器的连接是否已经超时。如果连接已经超时(在很长一段时间内,客户端与服务器之间没有进行交互),则释放这个客户端的连接。

    ● 检查这个客户端的输入缓存区的大小,以便对服务器的内存进行管理。如果客户端在上一次执行命令请求后,输入缓冲区的大小超过了一定的限制,那么程序会释放这个客户端的输入缓存区,然后重新为这个客户端创建一个默认大小的输入缓冲区,以此来防止客户端的输入缓冲区消耗更多内存。

  5. databasesCron 函数

    它的作用是对服务器中的部分数据库进行检查,查找出过期的键,然后删除它们,并对 Redis 数据字典进行相关的收缩操作等。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/9304.html

(0)
上一篇 2023-02-11
下一篇 2023-02-11

相关推荐

  • 啥叫大数据_Hadoop大数据技术开发实战

    啥叫大数据_Hadoop大数据技术开发实战一、概述 Apache Sqoop(SQL-to-Hadoop)项目旨在协助RDBMS(Relational Database Management System:关系型数据库管理系统)与Hadoop

    2023-05-18
    94
  • 如何使用Anaconda删除虚拟环境

    如何使用Anaconda删除虚拟环境在开发过程中,我们通常需要使用虚拟环境来隔离不同的项目依赖,这样可以避免不同项目之间的依赖冲突。但当不再需要这些虚拟环境时,我们需要将其删除以释放空间。本文将介绍如何使用Anaconda删除虚拟环境。

    2024-05-15
    11
  • zookeeper的配置文件_Zookeeper中文文档

    zookeeper的配置文件_Zookeeper中文文档目录结构 目录名作用 bin 存放系统脚本 conf 存放配置文件 contrib zk附加功能支持 dist-maven maven仓库文件 docs zk文档 lib 依赖的第三方库 recipe

    2023-03-24
    103
  • 京东云开发者|mysql基于binlake同步ES积压解决方案「终于解决」

    京东云开发者|mysql基于binlake同步ES积压解决方案「终于解决」1 背景与目标 1.1 背景 国际财务泰国每月月初账单任务生成,或者重算账单数据,数据同步方案为mysql通过binlake同步ES数据,在同步过程中发现计费事件表,计费结果表均有延迟,ES数据与My

    2023-06-14
    96
  • mysql设计表注意事项_数据库设计需要考虑的问题

    mysql设计表注意事项_数据库设计需要考虑的问题下面探讨的数据库为MySQL 存储引擎为innodb因为这是最常见的,使用最多的数据库和引擎 什么是页分裂? 这是因为聚簇索引采用的是平衡二叉树算法,而且每个节点都保存了该主键所对应行的数据,假设插…

    2023-03-08
    98
  • Python神器:最大数计算

    Python神器:最大数计算在日常生活和工作中,需要使用计算机进行一些最大值的计算。比如要找到一个文件夹中最大的文件,或者计算一段序列中的最大值。这时就需要使用一些算法和工具来实现最大数计算。

    2024-01-06
    67
  • Python中的模块:定义和导入可重用代码的方式

    Python中的模块:定义和导入可重用代码的方式Python是一门非常灵活的编程语言,可以在各种应用场景下使用。在开发复杂的程序时,我们通常会需要把功能模块分解成多个文件,这样可以提高可读性、可维护性和可扩展性。这就涉及到了Python中的模块(modules)。

    2024-03-16
    37
  • 让Python Web应用更加交互和动态的CGI技术

    让Python Web应用更加交互和动态的CGI技术CGI(通用网关接口,Common Gateway Interface)是一种标准接口,用于Web服务器与应用程序之间的数据传输。它允许通过Web服务器处理用户发出的请求,并动态生成HTTP响应的能力,从而实现在Web页面中嵌入动态内容。

    2024-03-08
    33

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注