数据库

Redis中哈希结构(Dict)的实现

目录前言Redis中的Dict结构什么是哈希冲突Redis的渐进式rehashrehash的触发条件扩容扩多大?为什么叫渐进式总结前言哈希结构是一个在计算机中非常常见的结构。哈希结构可以让我们在O(1)时间复杂度查找元素并且对其操作,并且增

Redis的持久化详解

目录一、Redis的持久化二、RDB(Redis DataBase)1、RDB快照原理2、RDB配置3、redis.conf 其他一些配置4、RDB的备份恢复5、RDB优缺点三、AOF(Append Of File)1、AOF原理2、AOF

redis使用zset实现延时队列的示例代码

目录1、为什么zset可以做消息队列?2、使用的zset命令3、代码实现3.1 消息实体3.2 队列类型3.3 创建消息工具3.4 消费消息最近在使用redis时,就想能不能用其实现消息队列?也在网上看了下其他小伙伴写的实现,结合自身业务实

redis缓存与数据库一致性的问题及解决

目录一、需求起因二、数据不一致原因写流程读流程三、问题解决思路四、总结一、需求起因假设先写数据库,再淘汰缓存:第一步写数据库操作成功,第二步淘汰缓存失败,则会出现DB中是新数据,Cache中是旧数据,数据不一致【db中是新数据,cache中

Redis底层数据结构SkipList的实现

目录为什么需要 SkipList(跳表)跳表的结构设计跳表的节点(zskiplistNode )跳表(zskiplist )跳表的查询过程为什么需要 SkipList(跳表)在普通链表中查找元素的时候,因为需要遍历查找,所以查询效率非常低,

详解Redis中地理位置功能Geospatial的应用

目录Geospatial Indexes 的数据结构常用命令实用场景示例1. 找出某一经纬度周围的餐馆2. 按照距离排序查询景点3. 根据经纬度计算两点距离Geospatial Indexes 是 Redis 提供的一种数据结构,用于存储和

SpringBoot整合Mybatis-plus和Redis实现投票功能

目录一、背景介绍二、开发环境三、技术实现1. 配置Redis2. 配置Mybatis-plus3. 实现投票功能四、测试运行五、总结一、背景介绍投票功能是一个非常常见的Web应用场景,SpringBoot作为当今流行的Web开发框架,为了提

浅析Redis底层数据结构Dict

目录Dict 的结构dicthtdicEntrydictDict 的 rehashRedis 如何实现 rehash什么时候进行 rehashrehash 的新 size 是多大?渐进式 rehashrehash 的步骤Dict 优点在于,

Redis分布式锁的10个坑总结

目录1. 非原子操作(setnx + expire)2.被别的客户端请求覆盖( setnx + value为过期时间)3. 忘记设置过期时间4. 业务处理完,忘记释放锁5. B的锁被A给释放了6. 释放锁时,不是原子性7. 锁过期释放,业务

浅析Redis中String数据类型及其底层编码

目录从 RedisObject 说起Redis 数据结构 -- StringString 类型的基本介绍和命令String 类型的底层实现动态字符串(SDS)String 的三种编码方式从 RedisObject 说起在 Redis 中,任

如何保证Redis与数据库的数据一致性

目录一. 针对读场景:二. 针对写场景:针对(2)的情况有两个疑问:关于疑问(1)有两个方案方案1:删除缓存方案2:更新缓存综合分析关于疑问(2)有两个方案方案1:先更新缓存,后更新数据库方案2: 先更新数据库,后更新缓存总结首先,分为两种

一篇吃透Redis缓存穿透、雪崩、击穿问题

前言:在学Redis之前我们查询数据的时候都是直接查询数据库的,但是这样会有一个潜在的问题:“如果用户量很大,所有请求都去访问数据库,那么会使数据库压力过大,导致性能下降甚至宕机”。因此,我们需要把经常访问的数据放到

Redis分布式缓存的安装

目录前言使用redis的原因安装二、docker下安装启动Redis容器观察Redis启动效果查看Redis的版本Redis服务器和客户端前言redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了ma

Redis高可用梳理详解

目录为什么要有Redis高可用?高可用的手段持久化:主从同步哨兵模式(Sentinel)Redis Cluster 集群方案为什么要有Redis高可用?痛点:如果一个服务的redis,只有一个master节点,那哪天接口机跟redis机器网

redis主从切换导致的数据丢失与陷入只读状态故障解决方案

目录背景业务redis高可用架构具体内存扩容流程主从切换后数据丢失原因定位总结背景最近一组业务redis数据不断增长需要扩容内存,而扩容内存则需要重启云主机,在按计划扩容升级执行主从切换时意外发生了数据丢失与master进入只读状态的故障,

关于Redis持久化的深入探究

目录Redis持久化1、为什么需要持久化?2、RDB(Redis Database)2.1 官网介绍2.2 什么是RDB2.3 操作步骤3、AOF(Append Only File)3.1 什么是AOF?3.2 AOF持久化方式3.3 AO

关于Redis的内存淘汰策略详解

目录一、什么是内存淘汰?二、Redis 内存上限三、Redis 内存淘汰策略四、内存淘汰的具体工作步骤五、LRU 算法及在 Redis 中的改进5.1 LRU 算法5.2 Redis 中的 LRU 算法六、LFU一、什么是内存淘汰?如果在做

Redis BigKey的问题解决

目录什么是BigKey?如何查看Redis中的bigKey?查看单个Keymemory usage如何优化1 拆分2 本地缓存什么是BigKey?BigKey指的是redis中一些key value值很大,这些key在序列化与反序列化过程中

Redis Lua同步锁实现源码解析

目录Redis+Lua同步锁Jedis配置Jedis工具类→获取jedisredis 锁工具类加锁示例(jedis+lua)Redis+Lua同步锁Jedis配置@Configuration@Getter@Setter@Slf4j