redis
文章平均质量分 93
吹老师个人app编程教学
好好学习,天天向上。
展开
-
redis题库详解
持久化就是把内存的数据写到磁盘中去,防止服务宕机了内存数据丢失。Redis 的持久化机制是什么?各自的优缺点?Redis 提供两种持久化机制 RDB(默认) 和 AOF 机制:RDB:是Redis DataBase缩写快照RDB是Redis默认的持久化方式。按照一定的时间将内存的数据以快照的形式保存到硬盘中,对应产生的数据文件为dump.rdb。通过配置文件中的save参数来定义快照的周期。优点:1)、只有一个文件 dump.rdb,方便持久化。原创 2024-03-12 08:51:20 · 571 阅读 · 0 评论 -
redis_5种数据结构及其底层实现原理详解
Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(无序集合)及zset(有序集合)在秒杀项目里,我用过redis的Set和Hash结构:String:一个 key 对应一个字符串,string是Redis 最基本的数据类型。(字节的abase框架只实现了redis的string数据结构,导致我们如果想要存储复杂的数据结构的时候,只能转成json格式的字符串来存储)原创 2023-04-20 07:23:21 · 892 阅读 · 1 评论 -
redis_如何保证数据库和缓存双写一致性详解
数据库和缓存(比如:redis)双写数据一致性问题,是一个跟开发语言无关的公共问题。尤其在高并发的场景下,这个问题变得更加严重。我很负责的告诉大家,该问题无论在面试,还是工作中遇到的概率非常大,所以非常有必要跟大家一起探讨一下。今天这篇文章我会从浅入深,跟大家一起聊聊,数据库和缓存双写数据一致性问题常见的解决方案,这些方案中可能存在的坑,以及最优方案是什么。原创 2023-02-17 21:28:35 · 1483 阅读 · 1 评论 -
redis_实现延迟队列及其他实现延迟队列详解
延时队列相比于普通队列最大的区别就体现在其延时的属性上,普通队列的元素是先进先出,按入队顺序进行处理,而延时队列中的元素在入队时会指定一个延迟时间,表示其希望能够在经过该指定时间后处理。从某种意义上来讲,延迟队列的结构并不像一个队列,而更像是一种以时间为权重的有序堆结构。原创 2023-02-16 09:29:58 · 724 阅读 · 0 评论 -
redis_主从、哨兵、集群原理详解
Redis Cluster是Redis的分布式集群解决方案,在 3.0 版本正式推出。在3.0之前的集群方案主要是主从复制和哨兵机制,3种方案各有优缺点。主从复制(Replication)主要是备份数据、读写分离、负载均衡,一个Master可以有多个Slaves服务器作为备份。哨兵(Sentinel)是为了高可用,可以管理多个Redis服务器,提供了监控,提醒以及自动的故障转移的功能。sentinel发现master挂了后,就会从slave(从服务器)中重新选举一个master(主服务器)。原创 2023-02-14 09:15:33 · 812 阅读 · 0 评论 -
redis_实现分布式锁详解
Redis除了拿来做缓存,你还见过基于Redis的什么用法?Redis做分布式锁的时候有需要注意的问题?如果是Redis是单点部署的,会带来什么问题?那你准备怎么解决单点问题呢?集群模式下,比如主从模式,有没有什么问题呢?那你简单的介绍一下Redlock吧?你简历上写redisson,你谈谈Redis分布式锁如何续期?看门狗知道吗?为回答如上关于分布式锁的问题,我搭建了一个超卖服务,模拟电商平台业务中出现的商品超卖现象,分析其中可能会遇到的各种问题,并予以解决方案。原创 2023-02-07 09:26:02 · 356 阅读 · 0 评论 -
redis_事务详解
Redis中的事务(transaction)是一组命令的集合。事务同命令一样都是Redis的最小执行单位, 一个事务中的命令要么都执行,要么都不执行。事务的应用非常普遍,如银行转账过程中A给B汇款,首先系统从A的账户中将钱划走,然后向B的账户增加相应的金额。这两个步骤必须属于同一个事务,要么全执行,要么全不执行。否则只执行第一步,钱就凭空消失了,这显然让人无法接受。事务的原理是先将属于一个事务的命令发送给Redis,然后再让Redis依次执行这些命令。上面的代码演示了事务的使用方式。原创 2023-02-06 09:24:34 · 447 阅读 · 0 评论 -
redis_持久化详解
fork函数是linux内核提供给用户创建进程的API,应用程序通过调用fork函数创建子进程,这个子进程可以和原来父进程干同样的事情,也可以和原来主进程干不同的事情,这主要取决于对应的参数。这个过程就好比孙悟空拔了一根自己的猴毛变出来一个和自己一模一样的孙悟空。因此在fork子进程的过程之中,子进程复制了父进程的代码段、数据段、堆栈、页表等,同时子进程拥有独立的虚拟内存空间(当然是从父进程那里复制过来的)。如下所示,实际上fork()最终调用的是内核copy_process方法复制进程。原创 2023-02-02 09:51:45 · 644 阅读 · 0 评论 -
redis_哈希槽&一致hash算法详解
虽然增加了节点D后,csdn.jpg的缓存失效了,但是,分布在 A-B,B-C 以及 D-A上面的数据仍然有效,失效的只是C-D段的数据(数据存在A节点,但是顺时针获取的服务器是D)。上图这种情况称之为hash偏斜,在这种情况下,大部分数据都会分部在C-A段,这个时候去A节点被删除,会有大量请求涌向B节点,给B节点带来巨大的压力,同时这部分缓存也会全部失效,有可能引发缓存雪崩。显然,我们去S1是无法获取数据的,这个时候就有可能会引发缓存的血崩,大量的请求落到数据库上。这时增加了服务器D又会发生什么事情呢?原创 2023-01-31 09:51:07 · 1652 阅读 · 0 评论 -
redis_基础学习
1 介绍一下RedisRedis 是一款使用 C 语言编写的高性能 key-value 数据库,开源免费,遵守 BSD 协议。BSD开源协议是一个给于使用者很大自由的协议。可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。特点:性能极高,能到 100000 次/s 读写速度支持数据的持久化,对数据的更新采用Copy-on-write技术,可以异步地保存到磁盘上丰富的数据类型,String(字符串)、List(列表)、Hash(字典)、Set(集合)、Sorted Set原创 2021-10-25 20:18:58 · 369 阅读 · 0 评论