我的编程空间,编程开发者的网络收藏夹
学习永远不晚

redis的场景应用有哪些

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

redis的场景应用有哪些

这篇文章主要介绍“redis的场景应用有哪些”,在日常操作中,相信很多人在redis的场景应用有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”redis的场景应用有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

主从模式

主从模式的应用场景有点类似于数据库的主从集群,主从往往是为了读写分离、backup 等目的才使用的,所谓主从模式简单的说就是有多个节点,里面包含主节点和从节点,结构如下图:

redis的场景应用有哪些

从节点在保持连接后每隔一个时间节点会主动的和主节点通信并发送同步请求,而后进行同步。

redis的场景应用有哪些

其实在整个流程中,最需要主要的就是数据间的同步,主要的同步方式有两种也就是全量同步和增量同步。

全量同步:全量同步一般使用在从节点刚接入主节点时进行全量复制,当然你也可以根据你的需求进行主动的全量同步

增量同步:Redis增量复制是指从节点初始化后开始正常工作时主服务器发生的写操作同步到从服务器的过程。 增量复制的过程主要是主服务器每执行一个写命令就会向从服务器发送相同的写命令,从服务器接收并执行收到的写命令,一般使用缓冲区、队列(先进先出)等方式辅助进行增量的同步。

哨兵模式

哨兵模式是为了保证redis的高可用产生的架构,简单地说就是通过构建1个或多个哨兵对节点进行监控,如果master发生故障下线之后,哨兵之间会进行投票,在2.8之后使用的是Raft算法进行master选举,关于这个算法其实这个算法也应用于zookeeper和某些网络拓扑中,简单说就是在选举的过程可通信节点达成共识后那个投票选举master,而后进行故障转移操作。

redis的场景应用有哪些

哨兵是作为一个进程单独运行在redis中,哨兵之间也是通过该进程进行通信的,这一点和zookeeper的原理也是类似的,假设一个6节点3个哨兵的集群的结构应该如下图:

redis的场景应用有哪些

那么哨兵是如何监控master下线的呢?

前面也有看到哨兵之间会进行集群的检测和哨兵之间的互相监测,但是哨兵不用做什么配置,因为哨兵巧妙的利用了master的发布/订阅机制去自动发现其它也监控了统一master的sentinel节点,在监测master方面一般分为两种:

主观下线(Subjectively Down, 简称 SDOWN)指的是单个 Sentinel 实例对服务器做出的下线判断。

客观下线(Objectively Down, 简称 ODOWN)指的是多个 Sentinel 实例在对同一个服务器做出 SDOWN 判断, 并且通过命令互相交流之后, 得出的服务器下线判断。 一个 Sentinel 可以通过向另一个 Sentinel 发送命令来询问对方是否认为给定的服务器已下线。

分片集群

在上面的部分不管redis主从,还是高可用的 sentinel 哨兵模式。我们所做的这些工作只是保证了数据备份以及高可用,目前为止我们的程序一直都是向1台redis写数据,其他的redis只是备份而已。在实际使用中一般分片集群使用较多,我为什么要特意强调是分片集群呢,其实上面所说的主从和哨兵都是集群但是他们都是备份式的集群,实际数据是由一台进行控制的,所谓分片其实是将不同的数据按照一定的分布规则分布在不同的机器上

redis的场景应用有哪些

在redis中,我们的应用在存取数据的时候需要根据一定的算法(一致性hash)进行计算和存取 ,那么在redis中如何实现数据分片的呢? 首先Redis至少存在三个数据分片,每个分片称为master,假设整个cluster有N个节点,那么每个节点都和其他N-1个节点保持连接和心跳,节点之间相互通信主要确认节点是否存活、节点的数据版本、投票选择新的master等

redis的场景应用有哪些

那么我们最终的集群结构大致如下:

redis的场景应用有哪些

到此,关于“redis的场景应用有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

redis的场景应用有哪些

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

redis的场景应用有哪些

这篇文章主要介绍“redis的场景应用有哪些”,在日常操作中,相信很多人在redis的场景应用有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”redis的场景应用有哪些”的疑惑有所帮助!接下来,请跟着小编
2023-06-04

redis锁的应用场景有哪些

Redis锁的应用场景有以下几个:1. 分布式锁:在分布式系统中,多个节点需要共享某个资源时,使用Redis锁可以保证在同一时间只有一个节点能够访问该资源,以避免并发冲突。2. 并发控制:当多个线程或进程需要同时对某个共享资源进行操作时,使
2023-08-12

redis sortedset的应用场景有哪些

实时排行榜:可以使用sorted set来存储用户的分数,并根据分数来实时更新排行榜。带权重的任务调度:可以将任务的执行时间作为score存储在sorted set中,根据score来实现带权重的任务调度。时间轴:可以使用sorted
redis sortedset的应用场景有哪些
2024-04-09

Redis中HyperLogLog的应用场景有哪些

基数统计:HyperLogLog可以用于对大数据集中的唯一值进行基数统计,例如统计网站的独立访客数、独立IP数等。网站UV统计:HyperLogLog可以用于统计网站的独立访客数,避免使用传统的去重方法会消耗大量的内存和时间。数据流量分
Redis中HyperLogLog的应用场景有哪些
2024-05-07

redis集群的应用场景有哪些

高并发读写:当系统需要处理大量并发读写请求时,可以通过搭建Redis集群来实现数据的快速读写,提高系统的响应速度和并发处理能力。数据缓存:Redis集群可以作为缓存服务器,将热点数据存储在内存中,减少数据库的访问压力,提高系统的性能和响应速
redis集群的应用场景有哪些
2024-04-29

redis数据库的应用场景有哪些

Redis数据库有以下应用场景:1. 缓存:由于Redis具有高速读取和写入的能力,可以用作缓存数据库,将热门的数据存储在Redis中,以减轻后端数据库的负载。2. 队列系统:Redis支持发布/订阅模式,可以用作消息队列系统。生产者可以将
2023-09-21

redis中setnx命令的应用场景有哪些

分布式锁:在分布式环境中,可以使用setnx命令来实现分布式锁,确保同一时刻只有一个客户端能够获取锁。防止重复提交:当用户提交表单或请求时,可以使用setnx命令来防止用户重复提交相同的数据。高并发场景:在高并发场景下,可以使用setnx命
redis中setnx命令的应用场景有哪些
2024-03-07

redis中getset命令的应用场景有哪些

实现原子性的操作:利用getset命令可以实现原子性的操作,即同时获取原来的值并设置新的值,避免在多线程环境下出现数据不一致的问题。计数器的实现:可以利用getset命令实现计数器的功能,比如实现对某个值的自增、自减操作。缓存更新:可以利用
redis中getset命令的应用场景有哪些
2024-03-07

ChatGPT的应用场景有哪些

这篇文章主要介绍了ChatGPT的应用场景有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇ChatGPT的应用场景有哪些文章都会有所收获,下面我们一起来看看吧。ChatGPT应用场景:1、开发聊天机器人,使
2023-02-23

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录