一种高并发场景下预约挂号号源更新的方法及系统技术方案

技术编号:35641773 阅读:34 留言:0更新日期:2022-11-19 16:33
本发明专利技术公开了一种高并发场景下预约挂号号源更新的方法及系统,属于高并发业务处理技术领域,该方法包括号源的查询和号源的更新,在缓存中快速查询号源信息,降低号源数据库的查询压力;使用lua脚本进行更新,保证号源更新的原子性;该方法的实现过程如下:将号源数据库中的号源信息完整的同步至缓存中;用户选择需预约的号源,从缓存中查询该号源是否还有余号,避免直接查询号源库,从而降低号源库的查询压力;将使用lua脚本更新后的号源同步更新至号源数据库中。本发明专利技术能够解决高并发场景下预约挂号号源更新的问题,既满足高可用的特性,也保证了号源更新的准确性。也保证了号源更新的准确性。也保证了号源更新的准确性。

【技术实现步骤摘要】
一种高并发场景下预约挂号号源更新的方法及系统


[0001]本专利技术涉及高并发业务处理
,具体地说是一种高并发场景下预约挂号号源更新的方法及系统。

技术介绍

[0002]现代社会,随着工作生活节奏越来越快,由于传统的现场挂号方式流程繁琐,效率低下,逐渐被网上挂号所取代。而预约挂号的意义不仅仅在于其方便性,更重要的是它使医疗资源配置更加高效合理,预约挂号让患者选择方便的就诊时间,有针对性、有目的性的去医院就诊,可以直接在线预约挂号自己想要选择的医生,可以使医院的门诊流量更合理,资源配置更科学。预约挂号改变了人们的就医方式,省去了人们排队挂号的时间,提高了就医效率,更科学的分配着医疗资源。而如何在高并发场景下保证系统的高性能和高可用性,是目前需要解决的一个至关重要的问题。

技术实现思路

[0003]本专利技术的技术任务是针对以上不足之处,提供一种高并发场景下预约挂号号源更新的方法及系统,能够解决高并发场景下预约挂号号源更新的问题,既满足高可用的特性,也保证了号源更新的准确性。
[0004]本专利技术解决其技术问题所采用的技术方案是:
[0005]一种高并发场景下预约挂号号源更新的方法,包括号源的查询和号源的更新,在缓存中快速查询号源信息,降低号源数据库的查询压力;使用lua脚本进行更新,保证号源更新的原子性;
[0006]该方法的实现过程如下:
[0007]1)、将号源数据库中的号源信息完整的同步至缓存中;
[0008]2)、用户选择需预约的号源,从缓存中查询该号源是否还有余号,避免直接查询号源库,从而降低号源库的查询压力;
[0009]3)、将使用lua脚本更新后的号源同步更新至号源数据库中。
[0010]本方法能够解决高并发场景下的大量的用户请求的问题,采用缓存技术来降低高并发的压力;同时使用Lua脚本实现原子性操作进行号源的更新,能够保证号源更新的原子性。避免高并发场景下对号源数据库压力过大,以及多个线程同时更新同一号源时号源数更新错误的问题。
[0011]优选的,所述缓存为redis缓存。
[0012]Redis是一个高性能的key

value数据库。支持存储的value类型包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。且为了保证效率,数据都是缓存在内存中。另外,redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实
现了master

slave(主从)同步。
[0013]优选的,所述用户选择需预约的号源,从缓存中查询该号源是否还有余号:
[0014]若有,则使用lua脚本对redis缓存中的号源进行更新;
[0015]若无,则返回号源已约满。
[0016]优选的,所述使用lua脚本对redis中的号源进行更新,先判断是否有余号,有余号,则号源减1;
[0017]lua脚本针对上述操作进行原子性操作,保证号源更新的一致性。
[0018]本专利技术还要求保护一种高并发场景下预约挂号号源更新的系统,包括号源查询模块和号源更新模块,
[0019]所述号源查询模块,在缓存中快速查询号源信息,降低号源数据库的查询压力;
[0020]所述号源更新模块,使用lua脚本进行更新,保证号源更新的原子性。
[0021]优选的,所述缓存为redis缓存。
[0022]优选的,所述用户选择需预约的号源,从缓存中查询该号源是否还有余号:
[0023]若有,则使用lua脚本对redis缓存中的号源进行更新;
[0024]若无,则返回号源已约满。
[0025]优选的,所述使用lua脚本对redis中的号源进行更新,先判断是否有余号,有余号,则号源减1;
[0026]lua脚本针对上述操作进行原子性操作,保证号源更新的一致性。
[0027]进一步的,该系统实现高并发场景下预约挂号号源更新的过程如下:
[0028]1)、将号源数据库中的号源信息完整的同步至缓存中;
[0029]2)、用户选择需预约的号源,从缓存中查询该号源是否还有余号,避免直接查询号源库,从而降低号源库的查询压力;
[0030]3)、将使用lua脚本更新后的号源同步更新至号源数据库中。
[0031]本专利技术还要求保护一种高并发场景下预约挂号号源更新的装置,该装置通过上述的高并发场景下预约挂号号源更新的方法实现号源的查询和号源的更新,在缓存中快速查询号源信息,并使用lua脚本进行更新:
[0032]将号源数据库中的号源信息完整的同步至缓存中;
[0033]用户选择需预约的号源,从缓存中查询该号源是否还有余号,避免直接查询号源库,从而降低号源库的查询压力;
[0034]将使用lua脚本更新后的号源同步更新至号源数据库中。
[0035]本专利技术的一种高并发场景下预约挂号号源更新的方法及系统与现有技术相比,具有以下有益效果:
[0036]本方法及系统可以满足高并发场景的应用,在缓存中快速查询号源信息,降低号源数据库的查询压力;使用lua脚本进行更新,保证了号源更新的原子性。既满足高可用的特性,也保证了号源更新的准确性。
附图说明
[0037]图1是本专利技术实施例提供的高并发场景下预约挂号号源更新的方法流程示图。
具体实施方式
[0038]本专利技术是实施例提供了一种高并发场景下预约挂号号源更新的方法,包括号源的查询和号源的更新,在缓存中快速查询号源信息,降低号源数据库的查询压力;使用lua脚本进行更新,保证号源更新的原子性;
[0039]该方法的实现过程如下:
[0040]1)、将号源数据库中的号源信息完整的同步至redis缓存中。
[0041]2)、用户选择需预约的号源,从redis缓存中查询该号源是否还有余号,避免直接查询号源库,从而降低号源库的查询压力:
[0042]若有,则使用lua脚本对redis缓存中的号源进行更新:先判断是否有余号,有余号,则号源减1;
[0043]lua脚本针对上述操作进行原子性操作,保证号源更新的一致性。
[0044]若无,则返回号源已约满。
[0045]3)、将使用lua脚本更新后的号源同步更新至号源数据库中。
[0046]Redis是一个高性能的key

value数据库。支持存储的value类型包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种高并发场景下预约挂号号源更新的方法,其特征在于包括号源的查询和号源的更新,在缓存中快速查询号源信息,降低号源数据库的查询压力;使用lua脚本进行更新,保证号源更新的原子性;该方法的实现过程如下:1)、将号源数据库中的号源信息完整的同步至缓存中;2)、用户选择需预约的号源,从缓存中查询该号源是否还有余号,避免直接查询号源库,从而降低号源库的查询压力;3)、将使用lua脚本更新后的号源同步更新至号源数据库中。2.根据权利要求1所述的一种高并发场景下预约挂号号源更新的方法,其特征在于,所述缓存为redis缓存。3.根据权利要求2所述的一种高并发场景下预约挂号号源更新的方法,其特征在于,所述用户选择需预约的号源,从缓存中查询该号源是否还有余号:若有,则使用lua脚本对redis缓存中的号源进行更新;若无,则返回号源已约满。4.根据权利要求3所述的一种高并发场景下预约挂号号源更新的方法,其特征在于,所述使用lua脚本对redis中的号源进行更新,先判断是否有余号,有余号,则号源减1;lua脚本针对上述操作进行原子性操作,保证号源更新的一致性。5.一种高并发场景下预约挂号号源更新的系统,其特征在于,包括号源查询模块和号源更新模块,所述号源查询模块,在缓存中快速查询号源信息,降低号源数据库的查询压力;所述号源更新模块,使用lua脚本进行更新,保证号源更新的原子性。6.根据权利要求5所述的一种高并发场景下预约挂号号源更新的系统,其特征在于,所述缓存为redis缓...

【专利技术属性】
技术研发人员:陈洋黎文志
申请(专利权)人:山东浪潮智慧医疗科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1