redis 消息离线缓存_一种基于Redis缓存技术实现商品信息缓存加载的方法与流程...

本发明涉及数据缓存技术领域,特别涉及一种基于Redis缓存技术实现商品信息缓存加载的方法。

背景技术:

一个网络系统在解决高并发请求时,通常采用缓存机制将数据库中的数据加载到内存或者处理访问速度较快的存储介质中长时间地保存,以减少数据库被访问的次数,进而减少数据库在大量的读取动作中I/O被长期占用造成的性能损耗。

Redis(Remote Dictionary Server,远程数据服务)是一款Key-Value存储的内存高速缓存数据库。与Memcached类似,Redis本质上是一个Key-Value类型的内存数据库,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过10万次读写操作,是已知性能最快的Key-Value DB。

但是与Memcached相比,当Redis缓存数据库支持存储的value类型相对更多,包括String(字符串)、List(链表)、Set(集合)和Zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。

同时,相比memcached,Redis缓存技术还具有以下优势:

(1)memcached所有的值均是简单的字符串,redis作为其替代者,支持更为丰富的数据类型;

(2)redis的速度比memcached快很多;

(3)redis可以持久化其数据。

Redis缓存的出色之处不仅仅是性能,Redis缓存最大的魅力是支持保存多种数据结构。此外单个value的最大限制是1GB,不像memcached只能保存1MB的数据,因此Redis可以用来实现很多有用的功能。

例如,用Redis缓存的List(链表)来做FIFO双向链表,可以实现一个轻量级的高性能消息队列服务;用Redis缓存的Set(集合)可以做高性能的tag系统等等。另外Redis缓存也可以对存入的Key-Value设置expire时间,因此也可以被当作一个功能加强版的memcached来用。

Redis缓存技术的主要缺点是数据库容量受到物理内存的限制,不能用作海量数据的高性能读写,因此Redis缓存技术适合的场景主要局限在较小数据量的高性能操作和运算上。

随着计算机技术的发展,通过电商平台进行网上购物变得越来越流行。电商平台系统在面对大量用户高并发请求系统时,尤其面对多店铺、多商品、商品抢购的情况下,高并发的商品信息数据查询请求会对数据库造成极大的压力。因此往往使用Redis缓存技术对商品信息进行缓存加载。使用Redis缓存机制虽能提供高效的查询速度和请求响应,但仍存在以下问题:

1、商品信息更新的及时性对系统的运行至关重要,数据缓存机制设置不合理,会导致系统运行结果的偏差;

2、商品信息数据缓存Key值命名需要合理的规范,否则在系统开发过程中会带来较多不便。

基于上述问题,本发明提出了一种基于Redis缓存技术实现商品信息缓存加载的方法。

技术实现要素:

本发明为了弥补现有技术的缺陷,提供了一种简单高效的基于Redis缓存技术实现商品信息缓存加载的方法。

本发明是通过如下技术方案实现的:

一种基于Redis缓存技术实现商品信息缓存加载的方法,其特征在于,包括以下步骤:

(1)首先,根据商品的基础数据生成商品信息;

(2)生成商城或店铺时间戳;

(3)根据登录客户的基础数据生成客户信息;

(4)生成客户商城或店铺时间戳;

(5)生成客户商城商品对应关系;

(6)制定商城数据刷新规则和客户查询规则。

所述步骤(1)中,生成商品信息的数据结构为Redis的Set集合,用于保存商品的基础数据,其键值为ITEM_INFO_商品编码。

所述步骤(2)中,生成商城或店铺时间戳的数据结构为Redis的Key-String键值对,用于保存商城商品的更新时间戳,其键值为SM_ITEM_TIME_商城或店铺编码。

所述步骤(3)中,生成客户信息的数据结构为Redis的Set集合,用于保存登陆客户的基础数据,其键值为CUST_INFO_客户编码。

所述步骤(4)中,生成客户商城或店铺时间戳的数据结构为Redis的Key-String键值对,用于保存客户最新一次查询商城可够商品列表的时间戳。

所述步骤(5)中,生成客户商城商品对应关系的数据结构为Redis的Key-String键值对,将客户在某商城可购的商品列表进行Json格式化后保存,其键值为CUST_SM_ITEM_客户编码_商城或店铺编码。

所述步骤(6)中,商城数据刷新规则为商城或店铺修改商品信息后,刷新商品信息缓存,并更新商城时间戳,表示该商城商品信息已更新。

所述步骤(6)中,客户查询规则为对比商城时间戳与客户商城时间戳,如果商城时间戳新于客户商城时间戳,则查询最新数据,更新客户商城商品对应关系,并更新客户商城时间戳,以达到保证客户查询商品数据准确性的目的。

本发明的有益效果是:该基于Redis缓存技术实现商品信息缓存加载的方法,通过规范化的数据更新机制及key值命名规则提高了系统开发的便利性和运行的可靠性,且具有广泛的支持度,对于高并发,尤其是抢购模式的电商平台,可以极大的降低客户频繁刷新页面对数据库造成的压力,将数据库性能更多的提供给后续的订单保存处理逻辑中,在保证数据准确性的同时,提高了系统运行的稳定性。

附图说明

附图1为本发明基于Redis缓存技术实现商品信息缓存加载的方法示意图。

具体实施方式

为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合实施例,对本发明进行详细的说明。应当说明的是,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

该基于Redis缓存技术实现商品信息缓存加载的方法,包括以下步骤:

(1)首先,根据商品的基础数据生成商品信息;

(2)生成商城或店铺时间戳;

(3)根据登录客户的基础数据生成客户信息;

(4)生成客户商城或店铺时间戳;

(5)生成客户商城商品对应关系;

(6)制定商城数据刷新规则和客户查询规则。

所述步骤(1)中,生成商品信息的数据结构为Redis的Set集合,用于保存商品的基础数据,其键值为ITEM_INFO_商品编码。

所述步骤(2)中,生成商城或店铺时间戳的数据结构为Redis的Key-String键值对,用于保存商城商品的更新时间戳,其键值为SM_ITEM_TIME_商城或店铺编码。

所述步骤(3)中,生成客户信息的数据结构为Redis的Set集合,用于保存登陆客户的基础数据,其键值为CUST_INFO_客户编码。

所述步骤(4)中,生成客户商城或店铺时间戳的数据结构为Redis的Key-String键值对,用于保存客户最新一次查询商城可够商品列表的时间戳。

所述步骤(5)中,生成客户商城商品对应关系的数据结构为Redis的Key-String键值对,将客户在某商城可购的商品列表进行Json格式化后保存,其键值为CUST_SM_ITEM_客户编码_商城或店铺编码。

所述步骤(6)中,商城数据刷新规则为商城或店铺修改商品信息后,刷新商品信息缓存,并更新商城时间戳,表示该商城商品信息已更新。

所述步骤(6)中,客户查询规则为对比商城时间戳与客户商城时间戳,如果商城时间戳新于客户商城时间戳,则查询最新数据,更新客户商城商品对应关系,并更新客户商城时间戳,以达到保证客户查询商品数据准确性的目的。

该基于Redis缓存技术实现商品信息缓存加载的方法,通过规范化的数据更新机制及key值命名规则提高了系统开发的便利性和运行的可靠性,且具有广泛的支持度,对于高并发,尤其是抢购模式的电商平台,可以极大的降低客户频繁刷新页面对数据库造成的压力,将数据库性能更多的提供给后续的订单保存处理逻辑中,在保证数据准确性的同时,提高了系统运行的稳定性。

以上所述的实施例,只是本发明具体实施方式的一种,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值