[{"attributes":{"background":"#ffffff","color":"#595959"},"insert":"1、原数据库(学生资料库)储存着多名学生的信息数据,需求是根据「年级」和「班级」输出学生的数据,以及根据「数据ID」修改某位学生的「信息」数据,数据结构如下:"},{"insert":"\n"},{"attributes":{"background":"#fafafa","color":"#595959"},"insert":{"image":"R10580997-fcad1dcdec1b30bc3c07562b8ce0e525_7203_606_114.png"}},{"insert":"\n\n"},{"attributes":{"background":"#fafafa","color":"#595959"},"insert":"2、"},{"attributes":{"background":"#ffffff","color":"#595959"},"insert":"新建一个『服务器缓存』作为缓存数据库,原因是服务器缓存读取快、结构简单和查询条件唯一(通过"},{"attributes":{"background":"#ffffff","color":"#595959","bold":true},"insert":"唯一"},{"attributes":{"background":"#ffffff","color":"#595959"},"insert":"的“键名”查询数据),为了确保键名的唯一性,我们这里将”stu+年级+班级“作为服务器缓存的键名(具体命名根据数据查询需求而定),如下图所示。"},{"insert":"\n"},{"attributes":{"background":"#ffffff","color":"#595959"},"insert":"·「键」字段记录入参,此处是“stu+年级+班级”的组合,比如1年级1班就是“stu11”;"},{"insert":"\n"},{"attributes":{"background":"#ffffff","color":"#595959"},"insert":"·「值」字段存放服务输出的数据,存储类型为数值、字符串、数值等,不能为对象类型;"},{"insert":"\n"},{"attributes":{"background":"#ffffff","color":"#595959"},"insert":"·「过期时间」有助于让缓存保持“新鲜性”,为空则永不过期,不建议为空,时间按需求自定义;"},{"insert":"\n"},{"attributes":{"background":"#fafafa","color":"#595959"},"insert":{"image":"R10580997-83781e0fee2c00ffb8570180f9036a9f_11312_536_206.png"}},{"insert":"\n\n"},{"attributes":{"background":"#ffffff","color":"#595959"},"insert":"3、示例中用两个服务分别实现数据查询和数据更新的功能,后台的基本组件架构就完成了,如图:"},{"insert":"\n"},{"attributes":{"background":"#fafafa","color":"#595959"},"insert":{"image":"R10580997-c48fedd0c4a5dea8d9c4d51af59cade7_8348_278_155.png"}},{"insert":"\n\n"},{"attributes":{"background":"#ffffff","color":"#595959"},"insert":"4、数据查询时,遵循上文「数据查询」的逻辑顺序,先查询服务器缓存库,再根据缓存情况决定是否需要查询原数据库。"},{"insert":"\n"},{"attributes":{"background":"#ffffff","color":"#595959"},"insert":" 在为服务器缓存库保存值时,\"值\"字段内容不能为对象数组,所以在保存时利用JSON.stringifg函数将数据库输出的对象数组转换为字符串便于保存,相应的,在输出缓存库中”值“内容时,利用JSON.parse函数将解析字符串,便于输出。"},{"insert":"\n"},{"attributes":{"background":"#ffffff","color":"#595959"},"insert":" 具体如下图所示,这里为了方便测试,在返回参数中加了一个“类型”记录数据是来自缓存还是原数据库。"},{"insert":"\n\n"},{"attributes":{"background":"#fafafa","color":"#595959"},"insert":{"image":"R10580997-9f5356b9ebad9882894da9b7bb938722_83244_856_830.png"}},{"insert":"\n\n"},{"attributes":{"background":"#ffffff","color":"#595959"},"insert":"5、更新数据时,为了让缓存库和原数据库的数据尽量保持一致,可以用『事务』组件去执行两个库的操作,遇到失败的情况可以进行数据回滚,具体逻辑如下 :"},{"insert":"\n"},{"attributes":{"background":"#fafafa","color":"#595959"},"insert":" 在原数据库更新数据成功后,将缓存库中对应的缓存记录删除,下次查询数据时,会先从数据库中查找相应数据,查询成功后会保存至缓存库,之后查询都会从缓存库中查找对应数据。"},{"insert":"\n"},{"attributes":{"background":"#fafafa","color":"#595959"},"insert":{"image":"R10580997-fb3566f8018f3bcda1364b1cc459ee4d_63571_860_700.png"}},{"insert":"\n\n"},{"attributes":{"background":"#fafafa","color":"#595959"},"insert":{"image":"R10580997-ad074dd46cfcd36fde601cc9148a834f_23452_872_271.png"}},{"insert":"\n"}]
[{"insert":"服务器缓存组件的基本用法\n"}]
缓存数据库是为了加快数据查询速度、缓解数据库压力而设立的一个专门储存常用查询数据的数据库,通常我们会把更新频率低,读取频率高的“热点”数据经过整合后储存到缓存数据库中。或者,针对一些需要复杂计算才能获取到的数据,比如,iVX工作台的作品列表,需要整合多个后台表的信息,进行各种排序和筛选之后,方可获取,此时也可以将计算结果存入缓存,这样,用户每次刷新工作台,不需要重复计算,可有效节省后台运算资源,并提高服务响应速度。
R10580997-a16ddebd535584546d3b1c1dc1522753_7956_278_155.png
https://v4pre.h5sys.cn/play/Rd3dpOxT