算法redis lru lfu

Redis布隆过滤器的原理和安装使用

前言 本文讲述布隆过滤器 (RedisBloom) 的基本原理和安装使用。 RedisBloom是什么? RedisBloom 是 Redis 中过滤器模块,可以用来判断值是否存在,常用来解决缓存穿透问题。 查询数据时,先用 RedisBloom 判断数据是否存在,不存在则直接返回,存在则从缓存 / ......
过滤器 原理 Redis

【算法数据结构专题】「延时队列算法」史上手把手教你针对层级时间轮(TimingWheel)实现延时队列的开发实战落地(上)

承接上文 承接之前的【精华推荐 |【算法数据结构专题】「延时队列算法」史上非常详细分析和介绍如何通过时间轮(TimingWheel)实现延时队列的原理指南】,让我们基本上已经知道了「时间轮算法」原理和核心算法机制,接下来我们需要面向于实战开发以及落地角度进行分析如何实现时间轮的算法机制体系。 前言回 ......

Redis 在身份认证中的应用

1.Redis 在 Session 共享问题中的应用 传统 Session-Cookeis 身份认证方法中,一个 Session 只保存在一台服务器上,适合域单体应用。随着项目规模的增加,项目的架构也不断向微服务分布式集群演进,传统的 Session-Cookie 方式在集群环境下就不能很好的工作了 ......
身份认证 身份 Redis

2021-12-30-Docker启动MySQL、MongoDB、Redis、Elasticsearch、Grafana,数据库

layout: post cid: 5 title: Docker启动MySQL、MongoDB、Redis、Elasticsearch、Grafana,数据库 slug: 5 date: 2021/12/30 16:57:00 updated: 2022/03/25 15:53:08 status ......

LRU缓存替换策略及C#实现

LRU缓存替换策略 缓存是一种非常常见的设计,通过将数据缓存到访问速度更快的存储设备中,来提高数据的访问速度,如内存、CPU缓存、硬盘缓存等。 但与缓存的高速相对的是,缓存的成本较高,因此容量往往是有限的,当缓存满了之后,就需要一种策略来决定将哪些数据移除出缓存,以腾出空间来存储新的数据。 这样的策 ......
缓存 策略 LRU

Redis 缓存机制

1.Redis 缓存 缓存(cache),原始意义是指访问速度比一般随机存取存储器(RAM)快的一种高速存储器,通常它不像系统主存那样使用 DRAM 技术,而使用昂贵但较快速的 SRAM 技术。缓存的设置是所有现代计算机系统发挥高性能的重要因素之一。 Redis 因读写性能较高,它非常适合作为存贮数 ......
缓存 机制 Redis

在Linux部署Redis主从和哨兵集群实现高可用

前言 本文主要讲述在 Linux 系统中配置和部署 Redis 主从集群和哨兵,实现高可用和自动故障迁移。 准备工作 参考 Redis 单机部署 安装 3 个 Redis 服务作一主二从,本文准备了 6380(主)、6381(从) 和 6382(从)。 参考 Redis 单机部署 安装 3 个 Re ......
主从 哨兵 集群 Linux Redis

在Linux部署Redis代理Twemproxy实现数据分片

前言 本文主要讲述 Redis 代理 Twemproxy 安装过程。 Twemproxy 是推特开源用于 Memcached 和 Redis 的轻量级代理。这里以0.5.0版本为例。 我们可以通过取模、随机、一致性哈希等算法将数据分散在多个 Redis 服务来实现水平扩展。但是客户端直连就需要跟每个 ......
Twemproxy 数据 Linux Redis

在Linux部署Redis Cluster集群

前言 本文讲述在 Linux 系统部署 Redis Cluster 实现数据分片的具体步骤。 请参考 Redis 单机部署 下载编译。 Redis Cluster是什么? Redis Cluster 是官方提供的一种用数据分片来实现横向扩容的解决方案,由一个或多个 Redis 服务组成一个无主集群。 ......
集群 Cluster Linux Redis

在Linux部署Redis代理Predixy实现数据分片

前言 本文以predixy-1.0.5为例,讲述 Redis 代理 Predixy 安装过程。 Predixy 是一款高性能全特征 Redis 代理,支持 Redis-sentinel 和 Redis-cluster。作者拿其它常用代理做了 性能测评,Predixy 在各个维度性能都是最优的,与其他 ......
Predixy 数据 Linux Redis

聚类算法

1.概念 聚类 -> 无监督学习(无分类、分组信息) 实现 -> 距离、相似性系数 目的 -> 数据预处理 -> 复杂数据结构(多维) -> 标准化 发现数据之间的依赖关系,删除或合并有密切依赖关系的数据 2.分类 1.基于划分的聚类方法 自顶向下 概念:n个元素组成的数据集D, 将数据分成k(k ......
算法

算法之回溯算法

回溯法 含义:类似枚举,一层一层往下递归寻找答案,尝试搜索答案,如果找到了答案,则返回答案,并且寻找其他可能的答案。如果没找到,则像上一层递归寻找可能的答案。 回溯算法也是递归算法的一种。 为什么要回溯呢?或者说为什么用到回溯算法呢? 因为我们不是要找到一个排列就好了,而是需要找出所有满足条件的排列 ......
算法

Redis——(主从复制、哨兵模式、集群)的部署及搭建

重点: 主从复制:主从复制是高可用redis的基础,主从复制主要实现了数据的多机备份,以及对于读操作的负载均衡和简单的故障恢复。 哨兵和集群都是在主从复制基础上实现高可用的。 缺点:故障恢复无法自动化,写操作无法负载均衡,存储能力受到单机的限制。 哨兵:在主从复制的基础上,哨兵实现了自动化的故障恢复 ......
主从 哨兵 集群 模式 Redis

在Linux部署单机Redis完整过程

前言 本文以redis-6.2.5为例,讲述在 Linux 系统下单机 Redis 下载、编译、打包、安装为服务、启动和访问的整个过程。 安装环境为 Linux CentOS 64,本文用的 7.5 版本. 下载编译目录在当前目录soft/redis下,最终服务可执行程序在/opt/soft/red ......
单机 过程 Linux Redis

BM 算法学习笔记

$\text{Berlekamp-Massey}$ 算法 模板题 考虑维护这个序列 $a$ 前缀的递推序列 $f$。 不妨假设当前考虑到 $a_1,a_2,a_3\dots a_n$,当前的递推序列为 $f_1,f_2,f_3\dots f_m$,那么接下来分为两种情况: $a_n= \sum {i ......
算法 笔记 BM

算法思想

$\mathcal{Part}$ 1. 前提提要 注意:本文为提高组难度的算法思想,主要为前缀和,差分等优化 因为是思想,讲的会比较玄乎,能理解就好 $\mathcal{Part}$ 2. 双指针 双指针通常解决区间问题 步骤是,确定一个右节点或左节点作为一个参考点,通常取右节点,记为 $j$ 我们 ......
算法 思想

Redis系列12:Redis 的事务机制

Redis系列1:深刻理解高性能Redis的本质 Redis系列2:数据持久化提高可用性 Redis系列3:高可用之主从架构 Redis系列4:高可用之Sentinel(哨兵模式) Redis系列5:深入分析Cluster 集群模式 追求性能极致:Redis6.0的多线程模型 追求性能极致:客户端缓 ......
Redis 机制 事务

BM 算法学习笔记

$\text{Berlekamp-Massey}$ 算法 模板题 考虑维护这个序列 $a$ 前缀的递推序列 $f$。 不妨假设当前考虑到 $a_1,a_2,a_3\dots a_n$,当前的递推序列为 $f_1,f_2,f_3\dots f_m$,那么接下来分为两种情况: $a_n= \sum {i ......
算法 笔记 BM

自动驾驶-预瞄-Pure pursuit纯跟踪算法-MATLAB实现

有空把引入、逻辑、原理介绍给写了,目前先给大家看看代码。 将来写大概会分成这么几块: 汽车运动学自行车模型 跟踪算法主流模型及特点 纯跟踪算法原理推导 代码介绍 代码原创,来之不易,请勿不注明转载。 喜欢点个赞吧!网上许多代码都跑不起来hh clc; clear; % form road cx = ......
算法 pursuit MATLAB Pure

Redis 的 Java 客户端

实际项目中,需要通过编程语言去访问并操作 Redis。Redis 官方提供了多种语言的客户端,具体可访问以下地址:https://redis.io/clients Java 语言访问 Redis,常用的 API 包括: (1)Jedis:一个很小但很健全的 redis 的 java 客户端,通过 J ......
客户端 客户 Redis Java

由数据范围反推算法复杂度以及算法内容

由数据范围反推算法复杂度以及算法内容 1、一般ACM或者笔试题的时间限制是1秒或2秒。 C++里面如果题目的时间限制是1s的话,这个1s是指每一个测试数据都有1s的时间限制,如果一个题有十几个测试数据,每一个测试数据都有1s的实现,正常比赛的话,比如蓝桥杯比赛的话,如果有10个测试数据,时间限制是1 ......
复杂度 算法 范围 内容 数据

AcWing算法提高课-1.1.1摘花生

题目描述 Hello Kitty想摘点花生送给她喜欢的米老鼠。 她来到一片有网格状道路的矩形花生地(如下图),从西北角进去,东南角出来。 地里每个道路的交叉点上都有种着一株花生苗,上面有若干颗花生,经过一株花生苗就能摘走该它上面所有的花生。 Hello Kitty只能向东或向南走,不能向西或向北走。 ......
花生 算法 AcWing

Redis 数据库的哨兵模式

1. 哨兵模式 1.1 哨兵模式的结构和作用 哨兵(Sentinel)是 Redis 官方提供的一种高可用方案,它可以监控多个 Redis 服务实例的运行情况。本质上,Sentinel 也是一个运行在特殊模式下的 Redis 服务器。主从复制模式下,一般会配置多个 Sentinel 节点,通过互相协 ......
哨兵 模式 数据库 数据 Redis

Redis 数据库的主从复制

1. 主从复制 1.1 什么是主从复制 主从复制,是将多台数据库服务器分为主节点(master)和从节点(slaver),主节点数据更新后会根据配置和策略,自动同步到从节点上,从而保证主从节点中存有相同的数据。 1.2 主从复制的作用 有了主从复制,数据可以有多份副本,这就带来了很多好处: (1)提 ......
主从 数据库 数据 Redis

Docker 下 Redis 数据库的持久化

1、Docker 容器的数据卷 Docker 是将系统与运行的环境打包成容器来运行,当容器删除后,容器里的系统自然也就没有了。但是,在实际的项目中,希望 Docker 容器产生的数据能够持久化,同时容器之间也能够共享数据。Docker 提供了数据卷技术来实现这些需求。 数据卷就是目录或文件,存在于一 ......
数据库 数据 Docker Redis

Redis 数据库的持久化

1、Redis 持久化 1.1 什么是持久化 持久化可以理解为数据的永久存储,就是将数据存储到一个不会丢失的地方。如果把数据放在内存中,电脑关闭或重启数据就会丢失,所以放在内存中的数据不是持久化的,而放在磁盘就是一种持久化。 1.2 Redis 的持久化 Redis 的数据存储在内存中,内存是瞬时的 ......
数据库 数据 Redis

Redis 数据库的事务机制

1、Redis 事务机制 1.1 事务的定义 事务是指一系列操作数据库的步骤,这一系列的操作步骤,要么完全地执行,要么完全地不执行。 1.2 Redis 的事务 同样,Redis 中的事务也是一组命令的集合,至少是两个或两个以上的命令。Redis事务是一个单独的隔离操作,事务中的所有命令都会序列化、 ......
机制 事务 数据库 数据 Redis

Redis的发布与订阅

1、发布与订阅 1.1 什么是发布和订阅 发布订阅模式是一种应用程序(系统)之间通讯、传递数据的技术手段,特别是在异构(不同语言)系统之间作用非常明显,可以实现应用(系统)之间的解耦合。 发布订阅是一对多的关系,需要有信息的发布者和消息的收听者。订阅者:对某个内容感兴趣,需要实时获取新的内容,只要关 ......
Redis

STAB算法

SATB算法思想简介 SATB算法的基本思想,可以概括为如下三句话: 并发标记之前先给Region内存打个快照,标记线程基于这个快照独立进行标记。应用线程不会直接修改这个快照中的对象,也就是说应用线程不会干扰标记线程的工作。 应用线程新分配的对象都认为是活跃对象,实际在下一个并发标记周期进行标记。 ......
算法 STAB

JVM的垃圾收集算法

介绍分代收集理论和几种垃圾收集算法的思想及其发展过程。 分代收集理论 当前商业虚拟机的垃圾收集器,大多数都遵循了 “分代收集”(Generational Collection)的理论进行设计,分代收集名为理论,实质是一套符合大多数程序运行实际情况的经验法则,分代收集理论它建立在两个分代假说之上: 弱 ......
算法 垃圾 JVM