Redis集群

本文内容基本全部来自:https://www.cnblogs.com/kismetv/p/9853040.html

集群,即Redis Cluster,是Redis 3.0开始引入的分布式存储方案。

集群由多个节点(Node)组成,Redis的数据分布在这些节点中。集群中的节点分为主节点和从节点:只有主节点负责读写请求和集群信息的维护;从节点只进行主节点数据和状态信息的复制。集群的作用主要有两点:

  1. 数据分区:将数据分散到多个节点,一方面突破Redis单机内存大小限制,另一方面可以做读写负载均衡,大大提高集群响应能力。
  2. 高可用:Redis集群支持主从复制和自动故障转移,当任意节点发生故障时,集群仍能够对外提供服务。
阅读更多...

Redis哨兵

Redis主从复制的作用有数据热备、负载均衡、故障恢复等;但主从复制存在的一个问题是故障恢复无法自动化。本文将要介绍的哨兵,它基于Redis主从复制,主要作用便是解决主节点故障恢复的自动化问题,进一步提高系统的高可用性。

阅读更多...

rand(7)模拟rand(10)的背后

刷LeetCode遇到这样一道题:用 Rand7() 实现 Rand10(),本文以这题为引子,深入探讨一下其背后的一些知识。

题目描述如下:

  • 给定方法 rand7 可生成 [1,7] 范围内的均匀随机整数,试写一个方法 rand10 生成 [1,10] 范围内的均匀随机整数。

    你只能调用 rand7() 且不能调用其他方法。请不要使用系统的 Math.random() 方法。每个测试用例将有一个内部参数 n,即你实现的函数 rand10() 在测试时将被调用的次数。请注意,这不是传递给 rand10() 的参数。

阅读更多...

B-树

B-树

B-树,这里的 B 表示 balance( 平衡的意思),B-树是一种多路自平衡的搜索树(B树是一颗多路平衡查找树
。它类似普通的平衡二叉树,不同的一点是B-树允许每个节点有更多的子节点。下图是 B-树的简化图:

阅读更多...

洗牌算法

所谓“洗牌算法”,就是把一组序列完全打乱,怎样才算乱呢?需要满足这样一个条件:对于包含n个元素的序列,每个元素出现在每个位置的概率都是1/n1/n

一种直白的方法就是,统计序列的全排列,然后在全排列集合中随机选取一各排列出来。这种方法虽然简单,但是无论是空间还是时间复杂度都太高了,有没有其他性能更高的算法呢?当然有,本文简单总结下集中常用的洗牌算法。

阅读更多...

拓扑排序

概述

拓扑排序,我的理解就是:有向图中所有节点的一种排列,这个排列需要满足下面两个条件:

  • 序列包含图中所有节点,且每个节点只出现一次;
  • 若A在序列中排在B的前面,则图中不存在从B到A的路径。
阅读更多...

平衡二叉树

平衡二叉树(Balanced Binary Tree)具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。平衡二叉树的常用实现方法有红黑树、AVL、替罪羊树、Treap、伸展树等。 最小二叉平衡树的节点的公式如下 F(n)=F(n-1)+F(n-2)+1 这个类似于一个递归的数列,可以参考Fibonacci数列,1是根节点,F(n-1)是左子树的节点数量,F(n-2)是右子树的节点数量。

阅读更多...
  • Copyrights © 2021-2022 Yin Peng
  • 引擎: Hexo   |  主题:修改自 Ayer
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信