redis 相关知识

简介: redis 相关知识

redis集群的三种模式:


1,主从复制模式


主从复制模式是Redis集群的基础,它通过将数据复制到多个从节点,实现了数据的备份和故障恢复。主节点负责写操作,而从节点负责读操作,从而实现了读写分离,提高了系统的性能和数据的可靠性。这种模式的优点包括配置简单、易于操作、数据可靠性提升等。然而,它也存在一些缺点,如主节点故障时需要手动切换到从节点,故障恢复时间较长,且主节点可能成为性能瓶颈


2,哨兵模式


哨兵模式在主从复制模式的基础上引入了哨兵节点,用于监控主节点和从节点的运行状态。当主节点发生故障时,哨兵节点会自动从从节点中选举出一个新的主节点,并通知其他从节点和客户端,实现故障转移。这种模式的优点包括自动故障转移、具备主从模式的所有优点等。但同样存在较难支持在线扩容、受单节点内存限制等问题。


3,集群模式


集群模式采用无中心结构,每个节点都是平等的,保存数据和整个集群的状态。这种模式下,每个节点都与其他所有节点连接,保证了系统的可用性和扩展性。优点包括无中心架构、节点间数据共享、灵活调整数据分布、高可用性等。然而,它也存在一些挑战,如复杂的配置和管理、需要更多的资源和维护等。


redis是单线程还是多线程的?


redis不同的版本之间采用线程模型是不一样的,在redis4.0版本之前使用的是单线程模型,在4.0版本之后增加了多线程的支持。在4.0之前虽然我们说redis是单线程,也只是说网络I/O线程以及set和get操作是由一个线程完成的。但是redis的持久化、集群同步还是使用其他线程完成的。


4.0之后添加了多线程的支持,主要体现在大数据的异步删除功能上,例如:unlink key、flushdb async。


为什么redis在4.0之前会选择淡线程,而且单线程还那么快?


选择单线程主要使用简单,不会存在锁竞争,不存在死锁和线程切换带来的性能和时间上的开销。但是单线程肯定也不会发挥出多核CPU的性能。


主要快的原因是:


1.redis的大部分操作都是在内存中完成的,内存中的执行效率本身就很快,并采用了高效的数据结构,比如:哈希表


2.使用单线程避免了多线程的竞争,省去了多线程切换带来的时间和性能开销,并且不会出现死锁。


3.采用 I/O 多路复用机制处理大量客户端的Socket请求,因为这是基于非阻塞的 I/O 模型,这就让Redis可以高效地进行网络通信,I/O的读写流程也不再阻塞。


Redis是如何实现数据不丢失的呢?


Redis数据是存储在内存中的,为了保证Redis数据不丢失,那就要把数据从内存存储到磁盘上,以便在服务器重启后还能够从磁盘中恢复原有数据,这就是Redis的数据持久化。Redis数据持久化有三种方式。


AOF 日志(Append Only File,文件追加方式):记录所有的操作命令,并以文本的形式追加到文件中。


RDB 快照(Redis DataBase):将某一个时刻的内存数据,以二进制的方式写入磁盘。


混合持久化方式:Redis 4.0 新增了混合持久化的方式,集成了 RDB 和 AOF 的优点。


redid 6380端口启动:

在已安装好了Redis的Linux机器上,部署多个实例端口步骤


  • step1:找到redis的安装目录的redis.conf

目录:/usr/local/src/redis-2.8.3/redis.conf


安装路径与实际为准,找到redis的安装目录即可


step2:创建log文件夹(选做)


/usr/local/src/redis-2.8.3/


如果该目录下没有log文件夹,则创建,有则无需创建


step3:复制redis.conf并修改新文件内容


复制当前目录下的redis.conf到/usr/local/src/redis-2.8.3/src/目录下,


并更改文件名为redis_6382.conf


并且需要修改redis_6382.conf中的内容如下:


使用vim命令修改文件内容


daemonize yes


pidfile /var/run/redis_6382.pid


port 6382


logfile “/usr/local/src/redis-2.8.3/log/redis_6382.log”


dbfilename dump_6382.rdb


dir /usr/local/src/redis-2.8.3/src


step4:启动新配置实例端口6382


有两种启动方式 (很小白的步骤):


方式一:在任意目录下输入如下命令:


启动redis的6382端口


命令:/usr/local/src/redis-2.8.3/src/redis-server /usr/local/src/redis-2.8.3/src/redis_6382.conf


查看启动结果


命令:ps -ef|grep redis


结果如下:


方式二:在/usr/local/src/redis-2.8.3/src下输入如下命令(在redis-server这个文件的目录下执行):


启动redis的6382端口


命令: ./redis-server ./redis_6382.conf


查看启动结果


命令:ps -ef|grep redis


结果如下:


step5:关闭指定实例端口6382


与启动redis命令方式类似:


在/usr/local/src/redis-2.8.3/src下输入如下命令:


命令:./redis-cli -p 6382 shutdown


查看启动结果


命令:ps -ef|grep redis


执行结果如下(6382端口已关闭)


目录
相关文章
|
27天前
|
弹性计算 人工智能 架构师
阿里云携手Altair共拓云上工业仿真新机遇
2024年9月12日,「2024 Altair 技术大会杭州站」成功召开,阿里云弹性计算产品运营与生态负责人何川,与Altair中国技术总监赵阳在会上联合发布了最新的“云上CAE一体机”。
阿里云携手Altair共拓云上工业仿真新机遇
|
3天前
|
人工智能 Rust Java
10月更文挑战赛火热启动,坚持热爱坚持创作!
开发者社区10月更文挑战,寻找热爱技术内容创作的你,欢迎来创作!
372 16
|
19天前
|
存储 关系型数据库 分布式数据库
GraphRAG:基于PolarDB+通义千问+LangChain的知识图谱+大模型最佳实践
本文介绍了如何使用PolarDB、通义千问和LangChain搭建GraphRAG系统,结合知识图谱和向量检索提升问答质量。通过实例展示了单独使用向量检索和图检索的局限性,并通过图+向量联合搜索增强了问答准确性。PolarDB支持AGE图引擎和pgvector插件,实现图数据和向量数据的统一存储与检索,提升了RAG系统的性能和效果。
|
6天前
|
JSON 自然语言处理 数据管理
阿里云百炼产品月刊【2024年9月】
阿里云百炼产品月刊【2024年9月】,涵盖本月产品和功能发布、活动,应用实践等内容,帮助您快速了解阿里云百炼产品的最新动态。
阿里云百炼产品月刊【2024年9月】
|
21天前
|
人工智能 IDE 程序员
期盼已久!通义灵码 AI 程序员开启邀测,全流程开发仅用几分钟
在云栖大会上,阿里云云原生应用平台负责人丁宇宣布,「通义灵码」完成全面升级,并正式发布 AI 程序员。
|
23天前
|
机器学习/深度学习 算法 大数据
【BetterBench博士】2024 “华为杯”第二十一届中国研究生数学建模竞赛 选题分析
2024“华为杯”数学建模竞赛,对ABCDEF每个题进行详细的分析,涵盖风电场功率优化、WLAN网络吞吐量、磁性元件损耗建模、地理环境问题、高速公路应急车道启用和X射线脉冲星建模等多领域问题,解析了问题类型、专业和技能的需要。
2594 22
【BetterBench博士】2024 “华为杯”第二十一届中国研究生数学建模竞赛 选题分析
|
5天前
|
存储 人工智能 搜索推荐
数据治理,是时候打破刻板印象了
瓴羊智能数据建设与治理产品Datapin全面升级,可演进扩展的数据架构体系为企业数据治理预留发展空间,推出敏捷版用以解决企业数据量不大但需构建数据的场景问题,基于大模型打造的DataAgent更是为企业用好数据资产提供了便利。
182 2
|
3天前
|
编译器 C#
C#多态概述:通过继承实现的不同对象调用相同的方法,表现出不同的行为
C#多态概述:通过继承实现的不同对象调用相同的方法,表现出不同的行为
105 65
|
7天前
|
Linux 虚拟化 开发者
一键将CentOs的yum源更换为国内阿里yum源
一键将CentOs的yum源更换为国内阿里yum源
333 2
|
23天前
|
机器学习/深度学习 算法 数据可视化
【BetterBench博士】2024年中国研究生数学建模竞赛 C题:数据驱动下磁性元件的磁芯损耗建模 问题分析、数学模型、python 代码
2024年中国研究生数学建模竞赛C题聚焦磁性元件磁芯损耗建模。题目背景介绍了电能变换技术的发展与应用,强调磁性元件在功率变换器中的重要性。磁芯损耗受多种因素影响,现有模型难以精确预测。题目要求通过数据分析建立高精度磁芯损耗模型。具体任务包括励磁波形分类、修正斯坦麦茨方程、分析影响因素、构建预测模型及优化设计条件。涉及数据预处理、特征提取、机器学习及优化算法等技术。适合电气、材料、计算机等多个专业学生参与。
1580 17
【BetterBench博士】2024年中国研究生数学建模竞赛 C题:数据驱动下磁性元件的磁芯损耗建模 问题分析、数学模型、python 代码