mybatis缓存、事务、插件的基础一、缓存(一)一级缓存与二级缓存  一级缓存最重要的就是一级缓存。每个session对象维持一个一级缓存,session对象创建时缓存创建,session对象释放时缓存销毁。  缓存是一个哈希表。哈希表根据唯一键存储值,值可以根据唯一键检索。一个实体由它的ID唯一标识,如果两个实体类型相同,ID也相等,那么这两个实体是相等的。   session对象从
转载 2024-07-02 14:53:11
24阅读
# 缓存除了Redis ## 概述 在软件开发中,缓存是一种常见的技术,用于提高系统的性能和响应速度。除了Redis这个著名的缓存工具之外,还有其他一些可供选择的缓存方案。本文将介绍一些常见的缓存方案,并通过代码示例来展示它们的使用。 ## 缓存方案 除了Redis之外,常见的缓存方案还包括: - Memcached: 一个简单、高性能的分布式内存对象缓存系统,常用于提供缓存服务。 -
原创 2023-11-02 12:04:01
110阅读
数据删除策略通常删除某个key,我们有如下三种处理方式:定时删除惰性删除定期删除1. 定时删除创建一个定时器,当key设置有过期时间,且过期时间到达时,由定时器任务立即执行对键的删除操作优点:节省内存,到时就删除,快速释放掉不必要的内存空间缺点:CPU压力大,无论此时CPU过载有多高,都会占用CPU,会影响Redis服务器的响应时间和吞吐量总结:用处理器性能换取内存空间(时间换空间) 2
转载 2023-07-04 16:32:49
88阅读
Redis应该说是目前最受欢迎的NoSQL数据库之一了。Redis通常被作为缓存组件,用作缓存数据。不过,除了可以缓存数据,其实Redis可以做的事还有很多。下面列举几例,供大家参考。 1、最新列表(推荐学习:Redis视频教程)例如新闻列表页面最新的新闻列表,如果总数量很大的情况下,尽量不要使用select a from A limit 10,尝试redis的 LPUSH命令构建Lis
转载 2024-06-30 18:55:41
32阅读
要根据不同缓存的特性和原理,才能根据业务选出最合适的,来看看几种常用的缓存 1. varnish,可以作为反向代理,缓存一些资源,例如可以把struts,freemarker动态生成的页面存储起来,达到直接挡掉到达web服务器的请求。 2. ehcache,主要存储在当前机器内存中,存取非常快,缺点是内存有限,各台机器内存中各存一份,失效时间不一致,数据就会出现不一致,一般用来
转载 2024-04-08 19:38:34
120阅读
说起缓存相关技术,老多了, memcache、redis、squid、varnish、web cache、 CDN等等。缓存技术五花八门,但这些技术间有什么共性的地方,又有什么不同的地方呢?答案肯定是有的,这次为大家分享及整理一下缓存方面的技术,主要分为三个系列展开:缓存随谈系列之一:数据库缓存缓存随谈系列之二:静态缓存缓存随谈系列之三:动态缓存 一、什么是数据库缓存  我们知道
转载 2023-12-08 16:37:12
217阅读
# 如何实现缓存除了 Redis 的选项 在现代软件开发中,缓存是提高系统性能的重要手段。虽然 Redis 是一种非常流行的缓存方案,但它并不是唯一的选择。本文将教你如何使用其他缓存技术,并详细说明每个步骤的实现过程。 ## 流程概述 我们将通过以下步骤进行缓存的实现: | 步骤 | 描述 | |------|---------
原创 8月前
69阅读
# 缓存除了Redis还有啥 ## 一、引言 在开发中,缓存是提高系统性能和响应速度的重要手段之一。虽然Redis是最常用的缓存组件之一,但除了Redis,还有很多其他的缓存方案可以选择。本文将介绍缓存的基本概念和流程,并给出几种常见的缓存方案供大家参考。 ## 二、缓存概念和流程 ### 2.1 缓存的作用 缓存是将计算结果或数据存储在临时存储器中,以提高访问速度和系统性能。通过将常用
原创 2023-09-29 17:07:36
118阅读
package org.fh.util; import java.util.List; import java.util.Map; import java.util.Set; import java.util.concurrent.TimeUnit; import org.springframework.data.redis.core.RedisTemplate; import org.spri
2.3 高速缓冲存储器(Cache)2.3.1 高速缓冲存储器的功能、结构与工作原理  高速缓冲存储器是存在于主存与CPU之间的一级存储器, 由静态存储芯片(SRAM)组成,容量比较小但速度比主存高得多, 接近于CPU的速度。 Cache的功能是用来存放那些近期需要运行的指令与数据。目的是提高CPU对存储器的访问速度。为此需要解决2个技术问题:一是主存地址与缓存地址的映象及转换; 二是按一定原则对
缓存是分布式系统开发中的常见技术,在分布式系统中的缓存,不止 Redis、Memcached 等后端存储;在前端页面、浏览器、网络 CDN 中也都有缓存的身影。缓存有哪些分类如果你是做业务开发的话,提起缓存首先想到的应该是应用 Redis,或者 Memcached 等服务端缓存,其实这些在缓存分类中只是一小部分。然而在整个业务流程中,从前端 Web 请求,到网络传输,再到服务端和数据库服务,各个阶
Redis内存回收机制Redis的内存回收主要围绕以下两个方面:1.Redis过期策略:删除过期时间的key值2.Redis淘汰策略:内存使用到达maxmemory上限时触发内存淘汰数据Redis的过期策略和内存淘汰策略不是一件事,实际研发中不要弄混淆了,下面会完整的介绍两者。Redis过期策略过期策略通常有以下三种:1.定时过期每个设置过期时间的key都需要创建一个定时器,到过期时间就会立即清除
几种缓存比较1、memcached协议简单、基于libevent的事件处理、内置内存存储方式、memcached不互相通信的分布式。 各个memcached不会互相通信以共享信息,分布策略由客户端实现。不会对数据进行持久化,重启memcached、重启操作系统会导致全部数据消失。Memcached常见的应用场景是存储一些读取频繁但更新较少的数据,如静态网页、系统配置及规则数据、活跃用户的基本数据和
        作为分布式缓存系统,Redis大量的应用于互联网行业的各类应用,即使是传统行业,只要是面向公众客户的互联网应用,因用户数的激增,也纷纷基于Redis做架构的改造。       像微博及 Twitter 这两大社交平台重度依赖 Redis 来承载海量用户访问,通过构建可灵活扩展的Redis集群让其能够承载
上一篇了解了cache,tlb,页缓存和mmap,这篇则主要关注交换缓存和交换区。前面几种缓存都是为了系统能更快地读取数据:页缓存将文件数据缓存至内存中减少磁盘io, tlb缓存页表数据便于地址翻译找到物理页面,cache则将物理页面中的数据进行缓存便于CPU读取。但要满足用户的需求,或者一直满足内存密集型应用程序的需求,无论计算机上可用的物理内存有多少都是不够的,因此内核需要将很少使用的部分内存
作者:blackheart先看一下Redis是一个什么东西。官方简介解释到:Redis是一个基于BSD开源的项目,是一个把结构化的数据放在内存中的一个存储系统,你可以把它作为数据库,缓存和消息中间件来使用。同时支持strings,lists,hashes,sets,sorted sets,bitmaps,hyperloglogs和geospatial indexes等数据类型。它还内建了复制,lu
转载 2024-05-15 10:36:55
27阅读
# 不小心删除了Redis缓存:如何预防与恢复 在现代开发中,Redis作为一种高性能的键值存储系统,广泛应用于缓存、消息队列和实时数据存储。然而,在使用Redis的过程中,意外删除缓存数据的问题时常发生。本文将探讨Redis的基本概念,删除数据的风险,以及如何有效预防和恢复缓存数据。 ## 什么是RedisRedis是一个开源的高性能键值数据库,它支持多种数据结构,如字符串、哈希、列表
原创 10月前
98阅读
# 科普:类似Redis缓存插件的原理与实现 在现代的软件开发中,缓存是一个至关重要的概念。它能够大大提高系统的性能和响应速度,减轻数据库的压力。Redis是一个非常流行的开源缓存数据库,但有时候我们可能需要更灵活的缓存插件来满足特定需求。本文将介绍类似Redis缓存插件的原理和实现方式。 ## 原理 类似Redis缓存插件通常包含以下几个主要组件: 1. **缓存存储**:用来存储缓存
原创 2024-03-21 06:59:49
29阅读
一、Redis介绍Redis是当前比较热门的NOSQL系统之一,它是一个开源的使用ANSI c语言编写的key-value存储系统 (区别于MySQL的二维表格的形式存储。)。和Memcache类似,但很大程度补偿了Memcache的不 足。和Memcache一样,Redis数据都是缓存在计算机内存中,不同的是,Memcache只能将数据缓存到内存中,无法自动定期写入硬盘,这就表示,一断电或重启,
转载 2023-05-29 11:05:53
131阅读
本文主要讨论这么几个问题:(1)“缓存与数据库”需求缘起(2)“淘汰缓存”还是“更新缓存”(3)缓存和数据库的操作时序(4)缓存和数据库架构简析一、需求缘起场景介绍缓存是一种提高系统读性能的常见技术,对于读多写少的应用场景,我们经常使用缓存来进行优化。例如对于用户的余额信息表account(uid, money),业务上的需求是:(1)查询用户的余额,SELECT money FROM acco
  • 1
  • 2
  • 3
  • 4
  • 5