- 博客(41)
- 收藏
- 关注
原创 Redis 集群
Redis集群通过数据分片和主从复制实现高可用与水平扩展。配置时需修改多个参数文件,包括端口、持久化设置等,并启动多个节点组成集群。集群使用16384个slot进行数据分片,支持故障自动转移。优势包括自动故障恢复、数据冗余和负载均衡,但存在跨节点事务不支持等功能限制。集群适合需要高可用和大容量缓存的场景,但维护复杂度高于单机模式。
2025-07-16 21:35:20
470
原创 Redis 主从复制
Redis主从复制通过master/slaver机制实现读写分离和容灾恢复。配置时需修改多个.conf文件的端口、持久化路径等参数,启动后使用slaveof命令设置从服务器。主从模式包括一主二从、薪火相传和反客为主三种方式。哨兵模式能自动监控主机故障并选举新主机,通过sentinel.conf配置并启动。主从复制存在复制延时问题,故障恢复时会根据优先级、偏移量和runid选择新主机。该机制有效提升了Redis的性能扩展和可用性。
2025-07-15 21:06:16
775
原创 Redis 持久化
Redis提供RDB快照和AOF日志两种持久化方式。RDB通过定时快照保存数据,适合大规模数据恢复但可能丢失最后一次修改;AOF记录所有写操作,数据安全性更高但文件更大。建议同时开启两种方式,以AOF为主保证数据完整性,RDB作为备份手段。配置时需权衡性能与数据安全,如调整AOF重写阈值、合理设置同步频率等。RDB适合从节点备份,AOF需控制重写频率以避免性能影响。根据业务需求选择合适方案,关键数据建议AOF+每秒同步,非关键数据可只用RDB。两种方式互为补充,共同保障Redis数据持久化。
2025-07-09 20:07:04
797
原创 Redis 其他数据类型
Redis其他数据类型概述 本文介绍了Redis中两种特殊的数据类型:Bitmaps和HyperLogLog。Bitmaps不是独立数据类型,而是基于字符串的位操作功能,可用于高效存储和统计用户访问等场景,支持setbit、getbit、bitcount等位操作命令。HyperLogLog是基数统计算法,仅需12KB内存即可估算近2^64个不重复元素,适合大规模去重统计,提供pfadd和pfcount命令。两种类型各有适用场景:Bitmaps适合元素密集的位操作,HyperLogLog适合海量数据去重统计。
2025-07-08 21:42:54
595
原创 Redis 消息的发布和订阅
Redis发布订阅(pub/sub)是一种消息通信模式,允许发送者(pub)发送消息,订阅者(sub)接收消息。客户端可订阅任意频道,当频道发布消息时,所有订阅者都会收到。通过命令行操作演示:先用subscribe订阅频道channel1,再用publish向channel1发送消息"hello",订阅客户端立即接收。需注意发布的消息不持久化,只有订阅后才能收到后续消息。这种机制适用于实时消息通知场景。
2025-07-03 20:28:07
434
原创 Redis 配置文件说明
Redis配置文件(redis.conf)详解:1) 支持bytes单位配置;2) 包含网络设置(bind IP、端口6379、连接队列等)和安全验证;3) 通用配置包括后台进程、日志级别、数据库数量;4) 资源限制包含最大连接数(maxclients)、内存上限(maxmemory)及淘汰策略(LRU/随机等)。生产环境需注意远程访问安全设置、内存限制和持久化配置。
2025-07-03 20:09:07
1165
原创 Redis 常用五大数据类型
本文介绍了Redis的基本命令和两种核心数据类型操作。第一部分概述了Redis key的基础操作,包括查看、判断、删除、过期设置等命令。第二部分详细讲解了String类型,包括其二进制安全特性、常用命令如set/get/incr等,以及SDS动态字符串的内部实现原理。第三部分介绍了List类型,说明其双向链表特性,列举了lpush/rpop/rpoplpush等操作命令,并解释了快速链表(quickList)的数据结构。全文通过代码示例和图示,清晰展示了Redis基础数据类型的使用方法和实现机制。
2025-07-02 21:37:55
1441
1
原创 Redis 概述及安装
Redis是一个高性能的开源Key-Value数据库,支持多种数据结构如字符串、列表、集合等,并具有原子性操作和持久化特性。安装Redis需要先安装GCC编译环境,解压后通过make命令编译安装。安装完成后可在/usr/local/bin目录找到相关命令文件。Redis支持前台和后台启动模式,通过修改redis.conf配置文件可切换启动方式。使用时可通过redis-cli客户端连接,默认提供16个数据库,支持数据库切换、清空等操作。Redis采用单线程+多路IO复用技术,与Memcache相比支持更多数据
2025-07-01 21:41:14
964
原创 NoSQL 数据库简介
NoSQL(Not Only SQL):即“不仅仅是SQL”,泛指非关系型的数据库。NoSQL不依赖业务逻辑方式存储,而以简单的Key-Value形式存储数据,因此增加了数据库的扩展能力。
2024-11-23 16:39:36
349
1
原创 C++ 设计模式之抽象工厂模式
1、抽象工厂模式(Abstract Factory Pattern)是一种创建型设计模式,它提供了一种方式来封装一组具有共同主题的单个工厂,而不需要指定它们的具体类。抽象工厂模式允许客户端使用抽象的接口来创建一系列相关或依赖的对象,而不需要指定它们具体的类。2、抽象工厂模式 (Abstract Factory)应用场景包括但不限于:2.1、系统独立于如何创建、组成和表示它的产品 :系统应该对产品类的实现细节和创建过程无需了解。2.2、系统需要多个产品系列中的一个来配置 :可以动态地更改产品系列。
2024-06-17 23:00:00
554
原创 C++ 设计模式之工厂方法模式
1、工厂方法模式是一种创建型设计模式,它提供了一种在不指定具体类的情况下创建对象的方法。工厂方法模式定义了一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。2、工厂方法模式 (Factory Method)应用场景包括但不限于:2.1、不知道用户需要创建的具体对象 :当你只知道需要创建的对象应该符合某个接口或基类,而不知道具体实现时,可以应用工厂方法模式。
2024-06-16 17:01:06
494
原创 C++进程间通信
多进程是指在一个程序中同时运行多个独立的进程,每个进程都有自己的独立的内存空间和执行环境。进程间通信是指不同进程之间进行数据交换和共享资源的方式。
2023-07-10 23:48:11
3732
1
原创 QSpinBox控件selectAll方法失效
需求:点击编辑框,默认全选文本代码里直接使用QSpinBox::selectAll()方法发现无效;解决方案:封装一层QSpinBox定义头文件 增加过滤事件#include<QSpinBox>class STOCKUTIL_EXPORT StockSpinBox : public QSpinBox{ Q_OBJECTpublic: explicit StockSpinBox(QWidget *parent = nullptr); ~StockSpinBox();
2021-10-21 15:08:40
572
原创 C++ 用malloc/free简单实现new/delete
#include<iostream>#include <string.h>using namespace std;// 利用malloc free实现new deleteclass classA{public: classA() { cout << "构造函数调用" << endl; } ~classA() { cout << "析构函数调用" << endl; }};void *malloc_ext
2021-08-31 13:43:55
273
原创 MySql报错
ERROR 3948 (42000) at line 3: Loading local data is disabled; this must be enabled on both the clien解决方案登录系统查看是否开启加载本地文件:show variables like 'local_infile';开启全局本地文件设置 :set global local_infile=on;...
2021-08-31 11:02:31
216
原创 mysql 导出表数据
mysql 导出表数据导出数据库为dbname的表结构mysqldump -uuser -pdbpasswd -d dbname >db.sql;导出数据库为dbname某张表结构mysqldump -uuser -pdbpasswd -d dbname table_name>db.sql;导出数据库为dbname所有表结构及表数据mysqldump -uuser -pdbpasswd dbname >db.sql;导出数据库为dbname某张表结构及表数据mysqldum
2021-08-31 10:58:49
2625
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅