学习笔记14:CNAME 记录值、TTL (Time to Live)、Redis 的 Pool 对象池、钩子函数、依赖注入

CNAME 记录值

CNAME 记录是一种DNS记录类型,它将一个域名映射到另一个域名。这通常用于将一个子域名指向另一个域名,或者将一个域名指向一个不同的顶级域。

  • 用途:用于域名别名,负载均衡,或者在更换域名时保持服务的连续性。
  • 格式example.com. IN CNAME www.example.com.

TTL (Time to Live)

TTL 是DNS记录中的一个参数,表示记录在DNS服务器上缓存的时间。TTL 值越长,记录在缓存中存储的时间越长,减少了对DNS服务器的查询次数,但同时更新记录时的延迟也会更长。

  • 格式:通常以秒为单位,例如 TTL 3600 表示记录在DNS服务器上缓存1小时。

Redis 的 Pool 对象池

Redis Pool 是一种用于管理 Redis 连接的机制。通过对象池,可以预先创建一定数量的 Redis 连接,并在需要时从池中获取或释放连接,从而提高资源利用率和减少连接创建和销毁的开销。

示例

#include <iostream>
#include <hiredis/hiredis.h>class RedisPool {
private:std::vector<redisContext*> pool;int size;int max_size;public:RedisPool(int size, int max_size) : size(size), max_size(max_size) {for (int i = 0; i < size; ++i) {redisContext* context = redisConnect("127.0.0.1", 6379);if (context != nullptr && context->err) {std::cerr << "Error: " << context->errstr << std::endl;redisFree(context);} else {pool.push_back(context);}}}~RedisPool() {for (auto& context : pool) {redisFree(context);}}redisContext* getConn() {if (pool.empty()) {return nullptr;}redisContext* context = pool.back();pool.pop_back();return context;}void releaseConn(redisContext* context) {if (pool.size() < max_size) {pool.push_back(context);} else {redisFree(context);}}
};int main() {RedisPool pool(10, 20); // 初始化一个包含10个连接的池,最大20个连接redisContext* conn = pool.getConn();if (conn) {// 使用连接进行操作redisReply* reply = (redisReply*)redisCommand(conn, "SET key value");if (reply) {std::cout << "Set operation successful" << std::endl;freeReplyObject(reply);}pool.releaseConn(conn); // 操作完成后释放连接}return 0;
}

在这个示例中,我们创建了一个 Redis 连接池,初始包含10个连接,最大可以扩展到20个连接。

钩子函数

钩子函数是一种在特定事件发生时自动调用的函数。它们通常用于调试、监控、事件处理等场景。

C++ 示例

#include <iostream>void preOperationHook() {std::cout << "Pre-operation hook triggered." << std::endl;
}void postOperationHook() {std::cout << "Post-operation hook triggered." << std::endl;
}void performOperation() {preOperationHook();std::cout << "Performing operation..." << std::endl;postOperationHook();
}int main() {performOperation();return 0;
}

在这个示例中,preOperationHookpostOperationHook 是钩子函数,分别在操作执行前后被调用。

依赖注入

依赖注入是一种设计模式,用于将组件的依赖关系从组件本身中解耦出来,通常通过构造函数、方法或属性传递。

C++ 示例

#include <iostream>class Service {
public:void performTask() {std::cout << "Service task performed." << std::endl;}
};class Client {
private:Service* service;public:Client(Service* service) : service(service) {}void execute() {service->performTask();}
};int main() {Service service;Client client(&service);client.execute();return 0;
}

在这个示例中,Client 类通过构造函数接收一个 Service 类型的依赖,实现了依赖注入。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/48530.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CSS(四)——CSS Text(文本)

CSS Text(文本&#xff09; 文本颜色 颜色属性被用来设置文字的颜色。 颜色是通过CSS最经常的指定&#xff1a; 十六进制值 - 如: &#xff03;FF0000 一个RGB值 - 如: RGB(255,0,0) 颜色的名称 - 如: red 一个网页的背景颜色是指在主体内的选择&#xff0c;即<body…

【C#】Func、Action和Predicate

使用情景 根据不同参数值&#xff0c;执行不同方法&#xff0c;执行完方法后&#xff0c;执行相同的操作 函数 Func Func 委托表示有返回值的方法。它最多可以接受 16 个输入参数&#xff0c;并且必须返回一个值。在 Func 委托中&#xff0c;最后一个类型参数始终是返回类型…

【C语言】英寸英尺转换米

运行的结果为 我们百度一下 恒明显我们的答案错了,那这个是为什么呢? 问题就出现在计算的地方,c语言规定两个整数计算,那么小数的部分会被丢弃. 如果计算的两个数中有一个数为小数,那么会将两个数都变为小数在进行计算,结果也会是小数. 那么我们现在就有解决办法了. 方法一…

gbase8s自动同步数据及加入集群的脚本

cat remote.sh #!/bin/bash #此脚本永远在主节点上执行&#xff0c;需要同步的节点永远是备节点 #主节点pri开头&#xff0c;备节点hac开头 #开始执行脚本之前一定要关闭hac节点&#xff0c;并且系统空间要大于备份数据文件的大小 #执行之前请手动改好ip和主备节点的实例名及g…

开源浪潮下的航行:趋势洞察与个人航迹

引言 在全球经济与科技浪潮的推动下&#xff0c;开源软件项目如同一股不可阻挡的洪流&#xff0c;正以前所未有的速度席卷整个技术生态。它不仅促进了技术的快速迭代与创新&#xff0c;更搭建起了一个跨越国界、行业与组织的协作平台。本文旨在探讨当前开源项目的发展趋势&…

SSH不用每次都输入密码的方法

首先&#xff0c;打开自己电脑上的终端cmd 输入&#xff1a; ssh-keygen -t rsa 一直回车。 然后我的服务器因为某些原因不能直接复制到远程终端 所以我手动复制&#xff0c;先打开要复制的公钥。这个地址就看你的程序默认给你创建的文件在哪里了。 cat .ssh/id_rsa.pub 这个--…

【时时三省】unity test 测试框架 下载

目录 1&#xff0c;unity test 测试框架介绍 2&#xff0c;源码下载 3&#xff0c;目录架构 4&#xff0c;git for window 下载安装方法&#xff1a; 1&#xff0c;unity test 测试框架介绍 Unity是一个用于C语言的轻量级单元测试框架。它由Throw The Switch团队开发&#…

Umi-OCR:功能强大且易于使用的本地照片识别软件

Umi-OCR是一款开源且免费的离线OCR&#xff08;光学字符识别&#xff09;软件&#xff0c;可让您轻松从照片中提取文本。它支持多种语言&#xff0c;并具有许多其他功能使其成为照片识别任务的绝佳选择。 Umi-OCR的优势 离线操作&#xff1a; Umi-OCR无需互联网连接即可工作&…

【算法】分割回文串

难度&#xff1a;中等 题目&#xff1a; 给你一个字符串 s&#xff0c;请你将 s 分割成一些子串&#xff0c;使每个子串都是 回文串。返回 s 所有可能的分割方案。 示例 1&#xff1a; 输入&#xff1a;s “aab” 输出&#xff1a;[[“a”,“a”,“b”],[“aa”,“b”]] 示…

PyMySQL库的使用方法

过程和步骤&#xff1a; 安装 PyMySQL 首先&#xff0c;需要使用 pip 安装 PyMySQL 库&#xff1a; pip install pymysql连接数据库 使用 PyMySQL.connect() 方法可以建立到 MySQL 数据库的连接&#xff1a; import pymysql# 配置数据库连接参数 config {host: localhost…

鸿蒙开发仓颉语言【在工程中使用Hyperion TCP框架】

3. 在工程中使用Hyperion TCP框架 3.1 导入Hyperion TCP框架的静态库 在工程的module.json中引入Hyperion TCP框架的静态库&#xff1a; "package_requires": {"package_option": {"hyperion_hyperion.buffer": "${path_to_hyperion_proj…

启发式缓存和本地存储缓存

启发式缓存详解 当服务器响应中没有包含 Expires、Cache-Control: max-age 或 Cache-Control:s-maxage 时,浏览器会采用一个启发式的算法来确定缓存的时间。 1. 启发式缓存的计算方法 通常,启发式缓存会根据响应头中的 Date 和 Last-Modified 之间的时间差来计算缓存时间。 …

【算法】01背包

算法-01背包 前置知识 DP 思路 01背包一般分为两种&#xff0c;不妨叫做价值01背包和判断01背包。 价值01背包 01背包问题是这样的一类问题&#xff1a;给定一个背包的容量 m m m 和 n n n 个物品&#xff0c;每个物品有重量 w w w 和价值 v v v&#xff0c;求不超过背…

Linux命令更新-文本处理grep

简介 grep命令是Linux系统中用于查找文本文件内容的实用工具。它可以根据指定的模式在文件中搜索文本&#xff0c;并显示匹配的行。grep命令功能强大&#xff0c;易于使用&#xff0c;是运维人员必备的工具之一。 命令格式 grep命令的基本格式如下&#xff1a; grep [选项] …

基于Windows系统和linux系统,实现samba文件共享服务,

1.设置IP地址&#xff1a; vim /etc/sysconfig/network-scripts/ifcfg-ens33 2.关闭防火墙和selinux [roots ~]# systemctl stop firewalld [roots ~]# systemctl disable firewalld [roots ~]# vim /etc/selinux/config [roots ~]# setenforce 0 [roots ~]# 3.重启网络服…

Photoshop橡皮擦工具

Photoshop&#xff08;简称PS&#xff09;中的橡皮擦工具是图像编辑中不可或缺的一部分&#xff0c;它主要用于擦除图像中的特定区域&#xff0c;让图像编辑变得更加灵活和高效。本教程将详细讲解橡皮擦工具及其变体&#xff08;背景橡皮擦工具和魔术橡皮擦工具&#xff09;的使…

Adobe国际认证详解-职业发展规划指南

Adobe国际认证&#xff0c;又称为Adobe Certified Professional&#xff08;简称ACP&#xff09;&#xff0c;是Adobe公司CEO签发的权威国际认证体系。这一认证体系基于Adobe核心技术及岗位实际应用操作能力的测评&#xff0c;旨在为用户提供创意软件的专业认证。 Adobe国际认证…

设计分享—国外医疗行业界面设计

医疗诊断界面是一个直观且信息丰富的数字平台&#xff0c;它集成了患者基本信息、病史记录、当前症状描述、检查结果展示以及智能诊断建议等功能于一体。 界面设计简洁明了&#xff0c;便于医生快速浏览关键信息&#xff0c;同时利用先进的算法辅助医生进行精准诊断&#xff0…

2025湾区国际智慧档案产业展览会_广州站

2025湾区国际智慧档案产业展览会暨2025中国智慧档案产业发展论坛 时间:2025年4月10-12日 地点:琶洲广州国际采购中心展览馆 主办单位:广州市档案行业协会 韩山师范档案产业学院 广东省现代办公设备协会 广州市现代办设备行业商会 支…

dou dian滑块captchaBody

声明(lianxi a15018601872) 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01; 前言(lianxi a…