关于二级缓存的设计思路

假设ID=1的人员在三个自定义组内,设为GROUP_A,GROUP_B,GROUP_C

东师的GROUD_DISDEAL,所在区校教研室分别为GROUP_SCHOOL_123,GROUP_AREA_2323,GROUP_JIAOYANSHI_2343

其它的就是这个人被直接推荐、收藏等,这些可能不是以GROUP为KEY记录的,但一个意思。

每个组我们都记录最后修改的时间TS,所谓最后修改时间TS,就是在有修改(比如删除,添加,更改时)修改最新的时间TS即可,与数据库的TS更改时间不必一致。

在有查询需要时,先检查ID=1的人是不是群组有无增加,删除,如果无,

那和分别获取每个GROUP的最后修改TS,如发现有不一致的,当然需要重新获取并更新二级缓存,否则直接获取二级缓存即可

这样要求我们在预热时需要记录每个人员的个性数据,群组的TS,东师的TS,SCHOOL的TS,AREA的TS等,这些TS可以是预热时的时间TS,而不是什么数据库中的TS.

比如有人给ID=1的人推荐了一个资源,那么肯定此ID=1的人员修改化数据TS要更改为修改的时间TS,下次请求时,自然需要重新获取了。

这个修改的思路就比修改时不知道改哪些数据有本质的区别了。

时间: 08-29

关于二级缓存的设计思路的相关文章

Hibernate的二级缓存

与Session的一级缓存相对的是,SessionFactory也提供了相应的缓存机制(二级缓存).SessionFactory缓存可以依据功能和目的的不同而划分为内置缓存和外置缓存. SessionFactory的内置缓存中存放了映射元数据和预定义SQL语句,映射元数据是映射文件中数据的副本,而预定义SQL语句是在 Hibernate初始化阶段根据映射元数据推导出来的.SessionFactory的内置缓存是只读的,应用程序不能修改缓存中的映射元数据和预定义 SQL语句,因此SessionFa

(20)Hibernate二级缓存

1.二级缓存的知识 Hibernate提供的缓存:有一级缓存.二级缓存. 目的是为了减少对数据库的访问次数,提升程序执行效率! 一级缓存:基于Session的缓存,缓存内容只在当前session有效,session关闭,缓存内容失效! 特点:作用范围较小! 缓存的时间短.缓存效果不明显. 二级缓存: Hibernate提供了基于应用程序级别的缓存, 可以跨多个session,即不同的session都可以访问缓存数据. 这个缓存也叫二级缓存. Hibernate提供的二级缓存有默认的实现,且是一种

HTTP 协议的历史演变和设计思路

HTTP 协议是互联网的基础协议,也是网页开发的必备知识,最新版本 HTTP/2 更是让它成为技术热点. 本文介绍 HTTP 协议的历史演变和设计思路. 一.HTTP/0.9 HTTP 是基于 TCP/IP 协议的应用层协议.它不涉及数据包(packet)传输,主要规定了客户端和服务器之间的通信格式,默认使用80端口. 最早版本是1991年发布的0.9版.该版本极其简单,只有一个命令GET. ? 1 GET /index.html 上面命令表示,TCP 连接(connection)建立后,客户端

深入了解MyBatis二级缓存

深入了解MyBatis二级缓存 标签: mybatis二级缓存 2015-03-30 08:57 41446人阅读 评论(13) 收藏 举报  分类: Mybatis(51)  版权声明:版权归博主所有,转载请带上本文链接!联系方式:[email protected] 目录(?)[+] 深入了解MyBatis二级缓存 一.创建Cache的完整过程 我们从SqlSessionFactoryBuilder解析mybatis-config.xml配置文件开始: Reader reader = Reso

Mybatis一级、二级缓存

一级缓存 首先做一个测试,创建一个mapper配置文件和mapper接口,我这里用了最简单的查询来演示. <mapper namespace="cn.elinzhou.mybatisTest.mapper.UserMapper"> <select id="findUsers" resultType="cn.elinzhou.mybatisTest.pojo.User"> SELECT * FROM user </se

Hibernate二级缓存

第一级缓存:事务范围的缓存.Session缓存.存放元数据和预定义SQL.只读缓存. 第二级缓存:进程范围或者集群范围.由SessionFactory负责管理.SessionFactory的外置缓存.SessionFactory这个级别维护的缓存.二级缓存是针对整个应用而不是某个特定的session. Session 如何判断持久化对象的状态的改变呢? Session 加载对象后会为对象值类型的属性复制一份快照.当Session 清理缓存时,比较当前对象和它的快照就可以知道那些属性发生了变化.

这一设计思路显然降低了新 DBMS 部署方案

数据库管理系统(简称 DBMS)无疑是任何数据密集型应用程序当中最为重要的组成部分,其肩负着处理大量数据以及高复杂性工作负载的重任.然而,数据库管理系统本身却往往难于管理,因为其中通常包含数百种配置"旋钮",用于控制诸如缓存内存分配量以及存储介质数据写入频率等要素.各类企业一般需要聘请专业人士以协助相关调配工作,但对于大多数企业而言,此类专业人才的开价亦相当高昂.而实际上,DBA所面临的挑战还远不止这些. 而今天一则名为"OtterTune"的机器学习DBMS系统刷

Redis设计思路学习与总结

版权声明:本文由宋增宽原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/222 来源:腾云阁 https://www.qcloud.com/community 宋增宽,腾讯工程师,16年毕业加入腾讯,从事海量服务后台设计与研发工作,现在负责QQ群后台等项目,喜欢研究技术,并思考技术演变,专注于高并发业务架构的设计与性能优化. 下半年利用空余时间研究和分析了部分Redis源码,本文从网络模型.数据结构和内存管理.持久化和多机

HBase二级索引的设计

摘要 最近做的一个项目涉及到了多条件的组合查询,数据存储用的是HBase,恰恰HBase对于这种场景的查询特别不给力,一般HBase的查询都是通过RowKey(要把多条件组合查询的字段都拼接在RowKey中显然不太可能),或者全表扫描再结合过滤器筛选出目标数据(太低效),所以通过设计HBase的二级索引来解决这个问题 查询需求 多个查询条件构成多维度的组合查询,需要根据不同组合查询出符合查询条件的数据 HBase的局限性 HBase本身只提供基于行键和全表扫描的查询,而行键索引单一,对于多维度的