摘要:
Redis 为什么用单线程 首先,我们说一下为什么 Redis 要使用单线程,Redis 是单线程,主要是指 Redis 的网络 IO 和键值对读写是由一个线程来完成的,这也是 Redis 对外提供键值存储服务的主要流程。但 Redis 的其他功能,比如持久化、异步删除、集群数据同步等,其实是由额外 阅读全文
摘要:
事务大家都熟悉吧,要么全部执行,要么全部不执行,今天我们就来讲讲 Redis 的事务🏃🏃🏃 一、事务基本使用 在讲解事务的原理之前,我们先来看看 Redis 事务是如何使用的吧 事务在其他语言中,一般分为以下三个阶段: 开启事务——Begin Transaction 执行业务代码,提交事务—— 阅读全文
摘要:
在讲解 Redis 内存淘汰机制之前,相信大家都了解过 Redis 键的过期策略,其实,这两者是完全不同的东西。Redis 过期策略指的是 Redis 采用哪种策略来删除已经过期的键值对;而 Redis 内存淘汰机制是当 Redis 的运行内存超过 Redis 设置的最大内存之后,将采用什么策略来删 阅读全文
摘要:
在 Redis 中,我们都知道 Redis 的键值对都是存储在内存中的,要是我们一直往 Redis 中添加键值对,最后就会导致 OOM,所以我们需要定期的去删除一些键值对,来保证内存不会爆,此时我们就需要了解 Redis 的键过期策略了 在学会键过期策略之前,我们还是先来讲解如何使用键过期策略吧😄 阅读全文
摘要:
一、简单介绍一下锁结构吧 谈到锁,我们都知道锁的作用,但是我们先来简单讲讲锁的结构吧🤣🤣🤣 其实锁就是内存中的一个结构,在我们执行一个事务之前,MySQL表中的记录本来是没有锁的,也就是说一开始是没有锁结构和这条锁记录相关联的,如图所示: 如果事务T1想要对这条记录做改动时,它先到内存中查看有 阅读全文
摘要:
一、为什么要使用 ConcurrentHashMap 在并发编程中使用 HashMap 可能会导致程序死循环,而是用线程安全的 HashTable 效率又非常低下,为了解决这个问题,ConcurrentHashMap 问世了。 1)线程不安全的 HashMap,在多线程环境下,使用 HashMap 阅读全文