Redis
程序员世杰
公众号『程序员世杰』,就职过各互联网大厂,资深码农,专注Java后端技术栈、AIGC等领域的技术分享
展开
-
聊聊 Mysql 索引和 redis 跳表
一、Redis中的跳表跳表可以简单理解就是给链表加索引,当结点数量多的时候,这种添加索引的方式,会使查询效率提高的非常明显。跳表这个动态数据结构,不仅支持查找操作,还支持动态的插入、删除操作,而且插入、删除操作的时间复杂度也是 ○(㏒n)。对于单纯的单链表,需要遍历每个结点来找到插入的位置。但是对于跳表来说,因为其查找某个结点的时间复杂度是 ○(㏒n),所以这里查找某个数据应该插入的位置,...原创 2020-04-14 18:26:15 · 2024 阅读 · 0 评论 -
Mybatis 的一级缓存和二级缓存
一级缓存1.定义一级缓存基于 sqlSession 默认开启,在操作数据库时需要构造 SqlSession 对象,在对象中有一个 HashMap 用于存储缓存数据。不同的 SqlSession 之间的缓存数据区域是互相不影响的。一级缓存的作用域是 SqlSession 范围的,当在同一个 sqlSession 中执行两次相同的 sql 语句时,第一次执行完毕会将数据库中查询的数据写到缓存...原创 2020-04-11 11:20:15 · 267 阅读 · 1 评论 -
Redis 和 Mysql 数据库数据如何保持一致性
在高并发的业务场景下,数据库大多数情况都是用户并发访问最薄弱的环节。所以,就需要使用 redis 做一个缓冲操作,让请求先访问到 redis,而不是直接访问 Mysql 等数据库。这样可以大大缓解数据库的压力。具体业务流程如下: 读取缓存步骤一般...转载 2020-04-09 10:12:08 · 1647 阅读 · 0 评论 -
Redis 实现分布式锁
1.分布式下的情况分布式与单机情况下最大的不同在于其不是多线程而是多进程。多线程由于可以共享堆内存,因此可以简单的采取内存作为标记存储位置。而进程之间甚至可能都不在同一台物理机上,因此需要将标记存储在一个所有进程都能看到的地方。2.分布式锁当在分布式模型下,数据只有一份(或有限制),此时需要利用锁的技术控制某一时刻修改数据的进程数。与单机模式下的锁不仅需要保证进程可见,还需要考虑进程与锁...转载 2020-03-30 19:05:58 · 190 阅读 · 0 评论 -
Redis 常见数据结构以及使用场景
1、String(字符串):String 数据结构是简单的 key-value 类型,value 其实不仅可以是 String,也可以是数字。应用场景:常规 key-value 缓存应用;常规计数:微博数,粉丝数等。2、hash(字典): Hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象,后续操作的时候,可以直接仅仅修改这个对象中的某...转载 2020-03-29 22:12:56 · 927 阅读 · 0 评论 -
Redis 字典的底层实现
字典又称符号表,关联数组或者映射,是一种用于保存键值对的抽象数据结构。一、Redis的字典底层结构Redis 的字典使用哈希表作为底层实现,一个哈希表里面有多个哈希节点,而每个哈希表节点就保存了字典中的一个键值对,Redis的字典可以参照Java中的HashMap。哈希表代码typedef struct dictht{ //哈希表数组 dictEntry **table...转载 2020-03-29 21:58:58 · 537 阅读 · 0 评论 -
什么是一致性哈希?看这里
[TOC]前言伴随着系统流量的增大,出现了应用集群。在 Redis 中为了保证 Redis 的高可用也为 Redis 搭建了集群对数据进行分槽存放。在 Mysql 数据库要存储的量达到一个很高的地步的时候,我们会对数据库进行分库分表操作。OK,到这儿先假设我们不知道什么是集群、什么是分库分表,我们先来看一个数据库水平切分演变的例子:假设我们的系统中有一张会员表 customer_info,...转载 2020-03-26 11:18:59 · 8027 阅读 · 2 评论 -
超详细的Redis面试题目(持续更新)
1. 什么是 Redis?Redis 本质上是一个 Key-Value 类型的内存数据库,很像 memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据 flush 到硬盘上进行保存。因为是纯内存操作,Redis 的性能非常出色,每秒可以处理超过 10 万次读写操作,是已知性能最快的 Key-Value DB。 Redis 的出色之处不仅仅是性能,Redis 最大的...原创 2020-03-20 17:37:24 · 396 阅读 · 0 评论