logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

Linux C/C++ 学习日记(60):Redis(一):基本介绍

Redis是一款开源高性能键值对内存数据库,支持多种数据结构和持久化。核心特点包括超高读写性能(单机QPS达10万+)、丰富数据结构、原子操作和分布式能力。主要应用于数据缓存、分布式协调、临时数据存储、消息传递和复杂计算等场景。与传统关系型数据库相比,Redis以内存操作为主,适合高频读写和分布式场景,但不支持复杂查询和强事务。典型应用包括缓存热点数据、实现分布式锁、构建排行榜系统等。

文章图片
#学习
Linux C/C++ 学习日记(62):Redis(三):订阅

Redis发布订阅(Pub/Sub)是Redis提供的轻量级消息通信机制,基于频道和模式实现一对多的消息广播。核心指令包括SUBSCRIBE/PSUBSCRIBE(订阅)、PUBLISH(发布)等,订阅者会进入阻塞状态。适用于实时通知、配置同步等场景,但存在无持久化、无确认机制等局限性,不适合高可靠性要求的场景。与List实现的消息队列相比,Pub/Sub是广播模型且不存储消息,而List支持消息

文章图片
#学习#redis#数据库
Linux C/C++ 学习日记(64):Redis(五):同步连接与异步连接代码实现,含部分接口源码分析

本文对比分析了Redis同步与异步连接的实现方案。同步连接采用阻塞IO,代码逻辑直观但会阻塞线程;异步连接基于非阻塞IO,通过事件循环和回调函数实现高性能,但代码复杂度较高。文章详细介绍了两种连接的API接口、内存管理机制和典型使用场景,并提供了C语言实现示例。特别深入剖析了异步连接的核心机制,包括事件循环适配、回调函数处理和连接状态管理。最后总结了两种方案在连接方式、结果获取、线程安全等方面的差

文章图片
#学习#redis#java
Linux C/C++ 学习日记(67):Redis(八):实现redis连接池,应用于项目当中

本文介绍了一个基于hiredis的Redis连接池实现,主要包含三个核心类: CacheConn类:封装Redis连接操作,提供字符串、哈希、列表、有序集合等数据类型的操作方法,并处理连接初始化与重连逻辑。 CachePool类:管理连接池,包括连接的创建、获取和回收,支持最大连接数限制和超时等待机制。 CacheManager类:作为连接池管理器,支持从配置文件读取多个Redis实例配置,并统一

文章图片
#linux#c语言#c++
Linux C/C++ 学习日记(66):Redis(七):redis的高可用性

Redis内存管理与持久化策略总结 内存管理: 通过expire/pexpire设置过期时间,maxmemory限制内存使用(建议设为物理内存一半) 提供多种淘汰策略(LRU/LFU/TTL/random),范围可选volatile或allkeys 持久化方案: RDB:定时快照,文件小恢复快但可能丢失数据 AOF:记录操作日志,数据更可靠但文件较大 混合持久化:结合RDB快照和AOF增量操作 主

文章图片
#学习
Linux C/C++ 学习日记(68):grpc(一):配置grpc环境,及CMakeLists.txt模板

本文详细介绍了gRPC环境的搭建与测试流程。主要内容包括:1)通过Git获取gRPC源码并选择v1.45.2版本;2)下载第三方依赖库后目录大小增至1.3G;3)编译安装步骤;4)强调必须使用grpc自带的protobuf进行编译安装;5)成功测试helloworld示例;6)提供完整的CMakeLists.txt模板,支持多协议生成和批量编译目标。文章还解释了关键CMake变量含义,为gRPC开

文章图片
#学习
Linux C/C++ 学习日记(69):grpc(二):.proto文件的书写

本文详细介绍了gRPC的.proto文件核心结构及语法要点。文件包含版本声明、包名定义、选项配置、消息定义和服务定义五个部分。重点说明了消息定义规则(字段编号分配、常用类型)和四种RPC类型(一元、服务端流、客户端流和双向流)。文章还演示了如何通过import复用其他proto文件,并解释了proto包名与C++命名空间的对应关系。最后提供了完整的登录模块示例,展示请求/响应消息定义和服务接口声明

文章图片
#linux#c语言#c++
Linux C/C++ 学习日记(70):grpc(三):基于grpc编写同步的server、client

本文介绍了gRPC四种通信模式的实现方法,包括一元RPC、服务端流式、客户端流式和双向流式RPC。通过proto文件定义服务接口,并分别给出了同步服务端和客户端的C++实现代码。详细说明了每种模式下消息的发送和接收时机:一元RPC同步完成请求响应;流式模式下通过Write()即时发送数据,通过Read()阻塞接收数据,使用WritesDone()标记发送结束。文章还总结了不同模式下客户端和服务端的

文章图片
#学习#rpc#网络协议
Linux C/C++ 学习日记(71):grpc(四):基于grpc编写异步server和client(1):常用api前置知识

本文系统介绍了gRPC异步编程的核心机制:1)服务端通过CompletionQueue(CQ)实现异步事件驱动模型,详细解析了CQ工作原理、tag/ok参数含义及状态机流转;2)客户端异步API的三步调用流程;3)流式RPC的优雅关闭机制,强调WritesDone()与Finish()的差异及正确使用方式;4)深入对比了同步/异步场景下服务端与客户端Finish操作的语义差异。文章提供了完整的异步

文章图片
#学习
Linux C/C++ 学习日记(72):grpc(五):基于grpc编写异步server和client(2):代码书写

本文详细介绍了gRPC异步通信的实现方案,包含服务端和客户端的单CQ/多CQ两种模式。服务端采用基于状态机的OOP设计,通过继承CallData基类实现四种RPC类型(一元、服务端流、客户端流、双向流)。客户端提供OOP和枚举两种实现方式,推荐使用基于继承的OOP方案。文章重点分析了多CQ与单CQ的差异,包括成员变量管理、线程处理、资源分配等关键点,并对比了不同实现方式的优缺点,强调OOP设计在可

文章图片
#学习
    共 37 条
  • 1
  • 2
  • 3
  • 4
  • 请选择