Redis
文章平均质量分 89
涵盖基本数据结构、持久化方式、单线程和多线程、缓存穿透/击穿/雪崩、布隆过滤器、Redis分布式锁、LRU策略、Cluster集群
Java架构何哥
从事政务信息化、大数据治理、智慧党建相关工作
展开
-
RedisUtil工具类封装
前言:根据RedisTemplate封装了Redis的一些常用的原生操作,适合工作中直接用提高效率。原创 2023-02-20 01:16:13 · 603 阅读 · 0 评论 -
RedisTemplate最常用方法
RedisTemplate常用方法介绍,根据RedisTemplate封装了Redis的一些常用的原生操作RedisUtil工具类原创 2023-02-20 01:02:28 · 2989 阅读 · 0 评论 -
Redis面试连环15问
1、Redis基本数据类型有哪些?Redis 是一种基于键值对的NoSQL缓存数据库,key都是由字符串构成的,而它的值主要由string(字符串),hash(哈希),list(列表),set(集合),zset(有序集合)五种基本数据结构构成,除此之外还支持一些其他的数据结构和算法。在开发中,字符串类型是用的最多的数据类型,导致我们忽视了redis的其他四种数据类型,在具体场景下选择具体的数据类型对提升Redis性能有非常大的帮助。 String(字符串) Hash(哈希) L原创 2022-05-07 13:38:47 · 895 阅读 · 0 评论 -
Redis 处理接口幂等性的两种方案
前言:接口幂等性问题,对于开发人员来说,是一个跟语言无关的公共问题。对于一些用户请求,在某些情况下是可能重复发送的,如果是查询类操作并无大碍,但其中有些是涉及写入操作的,一旦重复了,可能会导致很严重的后果,例如交易的接口如果重复请求可能会重复下单。接口幂等性是指用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用。一、接口幂等性1.1、什么是接口幂等性在HTTP/1.1中,对幂等性进行了定义。它描述了一次和多次请求某一个资源对于资源本身应该具有同样的结果(网络原创 2022-04-25 15:16:56 · 7982 阅读 · 1 评论 -
Redis高可用:主从复制、哨兵集群、Cluster 切片集群
前言:Redis高可用:主从复制、哨兵集群、Cluster 分片集群。一、主从同步Redis 的同步方式有:主从同步、从从同步(由于全部都由 master 同步的话,会损耗性能,所以部分的 slave 会通过 slave 之间进行同步)。同步过程: 建立连接,然后从库告诉主库:“我要同步啦,你给我准备好”,然后主库跟从库说:“收到”。 从库拿到数据后,要把数据保存到库里。这个时候就会在本地完成数据的加载,会用到 RDB 。 主库把新来的数据 AOF 同步给从库。原创 2022-05-06 15:09:40 · 1304 阅读 · 2 评论 -
Redis 布隆过滤器总结
前言:开发中,经常有让我们判断一个集合中是否存在某个数的case;大多数情况下,只需要用map或是list这样简单的数据结构。但是在高并发环境下,所有的case都会极端化,如果这是一个十分庞大的集合(给这个庞大一个具体的值吧,一个亿),简单的一个HashMap,不考虑链表所需的指针内存空间,一亿个int类型的整数,就需要380多M(4byte × 10 ^8),十亿的话就是4个G,不考虑性能,光算算这内存开销,即使现在满地都是128G的服务器,也不好吃下这一壶。在海量数据面前,需要高效的去重数据结构布.原创 2022-01-26 02:16:35 · 4470 阅读 · 1 评论 -
Redis 6.0多线程模型总结
前言:Redis 6.0.1 于 2020 年 5 月 2 日正式发布了,如 Redis 作者 antirez 所说,这是迄今为止最“企业”化的版本,也是有史以来改动最大的一个 Redis 版本。这个版本提供了诸多令人心动的新特性及功能改进,比如新网络协议RESP3,新的集群代理,ACL等,其中关注度比较高的应该是多线程模型了。1、Redis6.0之前的版本真的是单线程吗?Redis在处理客户端的请求时,包括获取 (socket 读)、解析、执行、内容返回 (socket 写) 等都由一个顺序串行的原创 2022-01-24 00:35:05 · 6134 阅读 · 2 评论 -
Redis进阶使用和实战技巧
前言: Redis 大家用的不少,但是我们大多数人可能都只是关注业务本身,对于底层的细节则经常忽略,久而久之,对个人的成长帮助甚少。本文为大家总结了关于 Redis 常见用法的进阶指南,希望帮助大家加深对这门技术的理解。原创 2022-01-23 23:56:33 · 1147 阅读 · 0 评论 -
Redis高性能原理:Redis为什么这么快?
前言:Redis 大家用的不少,但是可能都只关注业务本身,对于底层的细节则经常忽略,本文总结了 Redis的常见知识点,希望帮助大家加深对这门技一、Redis为什么这么快?1.1、数据结构SDS的妙用我们知道redis的底层是用c语言来编写的,但是,数据结构确没有直接套用C的结构,而是根据redis的定位自建了一套数据结构。C语言中的字符串结构:SDS定义下的字符串结构:可以看到,相比于C语言来说,也就多了几个字段,分别用来标识空闲空间和当前数据长度,但简直是神来之笔:原创 2022-01-22 02:05:10 · 12055 阅读 · 2 评论 -
Redis缓存击穿、缓存穿透、缓存雪崩
前言:设计一个Redis缓存系统,不得不要考虑的问题就是:缓存穿透、缓存击穿与失效时的雪崩效应。先来看一个常见的缓存使用方式:读请求来了,先查下缓存,缓存有值命中,就直接返回;缓存没命中,就去查数据库,然后把数据库的值更新到缓存,再返回。一、缓存穿透缓存穿透是指缓存和数据库中都没有数据,是指用户请求的数据在缓存中不存在即没有命中,同时在数据库中也不存在,导致用户每次请求这个不存在数据都要到数据库中去查询。通俗点说,读请求访问时,缓存和数据库都没有某个值,这样就会导致每次对这个值的查询请求原创 2022-01-17 19:10:56 · 1139 阅读 · 1 评论 -
Redis持久化机制RDB和AOF
前言:Redis读写速度快、性能优越是因为它将所有数据存在了内存中,然而,当Redis进程退出或重启后,所有数据就会丢失。所以我们希望Redis能保存数据到硬盘中,在Redis服务重启之后,原来的数据能够恢复,这个过程就叫持久化。一、RDB持久化RDB(Redis DataBase)持久化是指在指定的时间间隔内将内存中的数据集快照写入磁盘,实际操作过程是fork一个子进程,先将数据集写入临时文件,写入成功后,再替换之前的文件,用二进制压缩存储。持久化是一种常见的解决方案,那么,我们首先能想到原创 2022-01-17 00:26:02 · 532 阅读 · 0 评论 -
Redis五种数据类型的应用场景
Redis 是一种基于键值对的NoSQL缓存数据库,key都是由字符串构成的,而它的值主要由string(字符串),hash(哈希),list(列表),set(集合),zset(有序集合)五种基本数据结构构成。在具体场景下选择具体的数据类型对提升Redis性能有非常大的帮助。原创 2022-01-17 00:15:21 · 2601 阅读 · 0 评论 -
Redis深入学习:Jedis和Spring的RedisTemplate
前言:在 JavaWeb 中实现对 Redis 的操作,主要有两种方式:Jedis和RedisTemplate。Jedis是Redis官方推荐的面向Java操作Redis的客户端开发Jar包;而RedisTemplate是Spring框架对Jedis API的进行了高度封装,支持连接池自动管理,我们可以在Spring应用中通过简单的连接池配置信息就能访问Redis服务并进行相关缓存操作。也就是Sp...原创 2019-10-22 03:07:19 · 13381 阅读 · 2 评论 -
Redis快速入门攻略
前言:在我们日常的Java Web开发中,无不都是使用数据库来进行数据的存储,由于一般的系统任务中通常不会存在高并发的情况,所以这样看起来并没有什么问题,可是一旦涉及大数据量的需求,比如一些商品抢购的情景,或者是主页访问量瞬间较大的时候,单一使用数据库来保存数据的系统会因为面向磁盘,磁盘读/写速度比较慢的问题而存在严重的性能弊端,一瞬间成千上万的请求到来,需要系统在极短的时间内完成成千上万次的...原创 2019-10-21 08:13:34 · 1198 阅读 · 0 评论