- 上一篇文章中我们介绍了缓存穿透和应对方式,剩下的两个问题相对比较简单,本文我们再来看看如何解决。 缓存击穿缓存击穿是指缓存中没有但数据库中有的数据,由于出现大量的并发请求,同时读缓存没读到数据,又同时去数据库去取数据,引起数据库压力瞬间增大,造成过大压力。造成这种情况大致有两种情况:第一次查询数据时,没有进行缓存预热,数据并没有加入缓存当中。缓存由于到达过期时间导致失效。解决思路:当缓存不命... 上一篇文章中我们介绍了缓存穿透和应对方式,剩下的两个问题相对比较简单,本文我们再来看看如何解决。 缓存击穿缓存击穿是指缓存中没有但数据库中有的数据,由于出现大量的并发请求,同时读缓存没读到数据,又同时去数据库去取数据,引起数据库压力瞬间增大,造成过大压力。造成这种情况大致有两种情况:第一次查询数据时,没有进行缓存预热,数据并没有加入缓存当中。缓存由于到达过期时间导致失效。解决思路:当缓存不命...
- Redis是我们日常在工作中使用非常多的缓存解决手段,使用缓存,能够提升我们应用程序的性能,同时极大程度的降低数据库的压力。但如果使用不当,同样会造成许多问题,其中三大经典问题就包括了缓存穿透、缓存击穿和缓存雪崩。是不是听上去一脸懵逼?没关系,看完这篇就明白了。 缓存穿透缓存穿透是指用户在查找一个数据时查找了一个根本不存在的数据。按照缓存设计流程,首先查询redis缓存,发现并没有这条数据,... Redis是我们日常在工作中使用非常多的缓存解决手段,使用缓存,能够提升我们应用程序的性能,同时极大程度的降低数据库的压力。但如果使用不当,同样会造成许多问题,其中三大经典问题就包括了缓存穿透、缓存击穿和缓存雪崩。是不是听上去一脸懵逼?没关系,看完这篇就明白了。 缓存穿透缓存穿透是指用户在查找一个数据时查找了一个根本不存在的数据。按照缓存设计流程,首先查询redis缓存,发现并没有这条数据,...
- 对于支持注解的强迫症在上一篇文章jfinal中stateless模式嵌入shiro验证中我们已经成功嵌入了shiro,但是呢,有个小缺陷,并没有支持shiro的注解,例如,如下方式并不能触发权限验证:@RequiresPermissions("all")public void test() { renderText("测试");}在我们看来,以及在《Effective Java》的作... 对于支持注解的强迫症在上一篇文章jfinal中stateless模式嵌入shiro验证中我们已经成功嵌入了shiro,但是呢,有个小缺陷,并没有支持shiro的注解,例如,如下方式并不能触发权限验证:@RequiresPermissions("all")public void test() { renderText("测试");}在我们看来,以及在《Effective Java》的作...
- 前边我们已经介绍了Redis五种数据类型的命令与配置文件的基本配置,今天让我们从理论和配置两个层面来揭开Redis持久化的神秘面纱。 前边我们已经介绍了Redis五种数据类型的命令与配置文件的基本配置,今天让我们从理论和配置两个层面来揭开Redis持久化的神秘面纱。
- 在往期的文章中我们已经对`Redis`的概念和基本命令进行了讲解,今天我们来看下它的配置文件,`Redis`的配置文件在我们的开发和实际应用中起着非常重要的作用。 在往期的文章中我们已经对`Redis`的概念和基本命令进行了讲解,今天我们来看下它的配置文件,`Redis`的配置文件在我们的开发和实际应用中起着非常重要的作用。
- 提到点赞,大家一想到的是不是就是朋友圈的点赞呀?其实点赞对我们来说并不陌生,我们经常会在手机软件或者网页中看到它,今天就让我们来了解一下它的实现吧。 提到点赞,大家一想到的是不是就是朋友圈的点赞呀?其实点赞对我们来说并不陌生,我们经常会在手机软件或者网页中看到它,今天就让我们来了解一下它的实现吧。
- 前几天收到一个新的需求,需要实现类似“附近的人”的功能:根据自己当前的定位,获取距离范围内的所有任务地点。 前几天收到一个新的需求,需要实现类似“附近的人”的功能:根据自己当前的定位,获取距离范围内的所有任务地点。
- 在Redis中有5种基本数据类型,分别是String, List, Hash, Set, Zset。除此之外,Redis中还有一些实用性很高的扩展数据类型,下面来介绍一下这些扩展数据类型以及它们的使用场景。 GeoGEO在Redis 3.2版本后被添加,可以说是针对LBS(Location-Based Service)产生的一种数据类型,主要用于存储地理位置信息,并可以对存储的信息进行一系... 在Redis中有5种基本数据类型,分别是String, List, Hash, Set, Zset。除此之外,Redis中还有一些实用性很高的扩展数据类型,下面来介绍一下这些扩展数据类型以及它们的使用场景。 GeoGEO在Redis 3.2版本后被添加,可以说是针对LBS(Location-Based Service)产生的一种数据类型,主要用于存储地理位置信息,并可以对存储的信息进行一系...
- 跳跃表(skiplist)是一个有序的数据结构,它通过在每个节点维护不同层次指向后续节点的指针,以达到快速访问指定节点的目的。跳跃表在查找指定节点时,平均时间复杂度为,最坏时间复杂度为O(N)。 跳跃表(skiplist)是一个有序的数据结构,它通过在每个节点维护不同层次指向后续节点的指针,以达到快速访问指定节点的目的。跳跃表在查找指定节点时,平均时间复杂度为,最坏时间复杂度为O(N)。
- bei图1任务一:基础设施建设。(分值:145分)1、 创建三个VPC(名称自定义),并且将Database01和云计算redis分别更改到不同VPC下。【10分】2、按照2核CPU、4G内存、40G硬盘创建四台分别名为node1、node2、Database01和redis的云主机。【10分】 云主机规格:具体内容具体参数CPU架构x86计算规格s6.large.2镜像类型公共镜像镜像Ce... bei图1任务一:基础设施建设。(分值:145分)1、 创建三个VPC(名称自定义),并且将Database01和云计算redis分别更改到不同VPC下。【10分】2、按照2核CPU、4G内存、40G硬盘创建四台分别名为node1、node2、Database01和redis的云主机。【10分】 云主机规格:具体内容具体参数CPU架构x86计算规格s6.large.2镜像类型公共镜像镜像Ce...
- Redis五种数据类型的命令及实战一、5种数据结构命令1.字符串字符串可以存储三种类型的值:字节串(byte string),整数,浮点数。存储方式:键值对字符串命令命令描述get获取存储在给定键中的值set设置存储在给定键中的值del(这个命令适用于5种数据结构)删除存储在给定键中的值127.0.0.1:6379> set key1 value1OK127.0.0.1:6379> get ... Redis五种数据类型的命令及实战一、5种数据结构命令1.字符串字符串可以存储三种类型的值:字节串(byte string),整数,浮点数。存储方式:键值对字符串命令命令描述get获取存储在给定键中的值set设置存储在给定键中的值del(这个命令适用于5种数据结构)删除存储在给定键中的值127.0.0.1:6379> set key1 value1OK127.0.0.1:6379> get ...
- 《Redis设计与实现》笔记3阅读《Redis设计与实现》的笔记,这一篇文章包括发布与订阅、事务、慢查询日志、监视器等1.发布与订阅发布与订阅指客户端可以订阅一个或多个频道,每当有其他客户端向频道发送消息时,频道的所有订阅者都会收到这条消息,如下:发布与订阅分为两种:频道的订阅与退订、模式的订阅与退订。1.1 频道的订阅与退订频道的订阅命令为subscribe,打开第一个终端,输完命令后会处... 《Redis设计与实现》笔记3阅读《Redis设计与实现》的笔记,这一篇文章包括发布与订阅、事务、慢查询日志、监视器等1.发布与订阅发布与订阅指客户端可以订阅一个或多个频道,每当有其他客户端向频道发送消息时,频道的所有订阅者都会收到这条消息,如下:发布与订阅分为两种:频道的订阅与退订、模式的订阅与退订。1.1 频道的订阅与退订频道的订阅命令为subscribe,打开第一个终端,输完命令后会处...
- 基于setnx加锁,基于lua实现锁释放。实现了根据 key 及唯一标识 requestId进行加锁,并设置了超时时间;释放锁时根据key及requestId进行释放。SET_IF_ABSENT 没有key才设置,expire 设置超时时间,作为原子性操作RedisCallback<Boolean> callback = (connection) -> { return connec... 基于setnx加锁,基于lua实现锁释放。实现了根据 key 及唯一标识 requestId进行加锁,并设置了超时时间;释放锁时根据key及requestId进行释放。SET_IF_ABSENT 没有key才设置,expire 设置超时时间,作为原子性操作RedisCallback<Boolean> callback = (connection) -> { return connec...
- 分布式RedisSession的探索 为什么需要分布式session,对于API接口是不需要session的,对于后台管理页面,基于session的认证及授权如shiro是需要分布式session的。 spring cloud常用的分布式session解决方案redisSession是基于cookie来存贮session的,对于前后端分离的项目,可以在请求中携带cookie。 1. 搭... 分布式RedisSession的探索 为什么需要分布式session,对于API接口是不需要session的,对于后台管理页面,基于session的认证及授权如shiro是需要分布式session的。 spring cloud常用的分布式session解决方案redisSession是基于cookie来存贮session的,对于前后端分离的项目,可以在请求中携带cookie。 1. 搭...
- 缓存的本质缓存的本质是解决数据两端的处理速度差异问题,从而尽量避免处理速度快的等着处理速度慢的。例如,我们都知道CPU的处理速度比内存的存储速度快,这种速度差异巨大,为了避免CPU在从内存读取数据时等待空转,因此才有CPU内部的三级缓存L1, L2, L3,从而避免内存成为CPU的性能瓶颈。另外,本文所阐述的缓存只针对后台服务,针对web前端的浏览器级别,CDN,或者手机端本地缓存不做过多... 缓存的本质缓存的本质是解决数据两端的处理速度差异问题,从而尽量避免处理速度快的等着处理速度慢的。例如,我们都知道CPU的处理速度比内存的存储速度快,这种速度差异巨大,为了避免CPU在从内存读取数据时等待空转,因此才有CPU内部的三级缓存L1, L2, L3,从而避免内存成为CPU的性能瓶颈。另外,本文所阐述的缓存只针对后台服务,针对web前端的浏览器级别,CDN,或者手机端本地缓存不做过多...
上滑加载中
推荐直播
-
华为云码道-AI时代应用开发利器2026/03/18 周三 19:00-20:00
童得力,华为云开发者生态运营总监/姚圣伟,华为云HCDE开发者专家
本次直播由华为专家带你实战应用开发,看华为云码道(CodeArts)代码智能体如何在AI时代让你的创意应用快速落地。更有华为云HCDE开发者专家带你用码道玩转JiuwenClaw,让小艺成为你的AI助理。
回顾中 -
Skill 构建 × 智能创作:基于华为云码道的 AI 内容生产提效方案2026/03/25 周三 19:00-20:00
余伟,华为云软件研发工程师/万邵业(万少),华为云HCDE开发者专家
本次直播带来两大实战:华为云码道 Skill-Creator 手把手搭建专属知识库 Skill;如何用码道提效 OpenClaw 小说文本,打造从大纲到成稿的 AI 原创小说全链路。技术干货 + OPC创作思路,一次讲透!
回顾中 -
码道新技能,AI 新生产力——从自动视频生成到开源项目解析2026/04/08 周三 19:00-21:00
童得力-华为云开发者生态运营总监/何文强-无人机企业AI提效负责人
本次华为云码道 Skill 实战活动,聚焦两大 AI 开发场景:通过实战教学,带你打造 AI 编程自动生成视频 Skill,并实现对 GitHub 热门开源项目的智能知识抽取,手把手掌握 Skill 开发全流程,用 AI 提升研发效率与内容生产力。
回顾中
热门标签