营销插件章节(一) ——抽奖

php 抽奖功场景分析以及功能实现

	本期给大家介绍常见的营销插件, 作为一名开发业务的程序猿来说抽奖功能可谓是多见不怪的,
	接下来就请阅读该墨客的各位小伙伴跟随 GJ_rabbit 来一起分析抽奖的难点以及相应功能的实现
	
	**1,分析功能实现的思路**
		1.1,用户状态的检测 
			是否合法,是否登录等常见验证, 此处推荐使用token + sign
		1.2,根据项目业务场景, 实现对应验证
			目前该实例的场景为:  每天抽一次,抽i将必中,不能超抽
			1.2.1,检测用户今天是否抽过,
			1.2.2,恶意访问 (此处 ip 10秒内出现5次)
			1.2.3,避免同一奖品N个用户抽中 (redis -- 悲观锁)
			1.2.4,奖品剩余更新
		1.3,redis数据与MySQL数据同步
			数据同步:定时任务(crontab)
			
	**1.2,奖品数据中 redis 与 MySQL的协作**		
		1.2.1,MySQL 主要用于数据永久性存储,管理平台创建抽奖活动存储以及最终与Redis进行数据同步
		1.2.2,Redis 主要用于数据短暂性存储,  缓解MySQL读写压力
		1.2.3,,MySQL与Redis在抽奖中的联系
			1.2.3.1,在管理平台对抽奖活动操作时需同时维护MySQL与Redis
				MySQL:不多介绍,根据业务情况创建相应数据表
				Redis:
							奖品信息存储:Hash  
								 key     <----> 对应活动信息主键
							 	 value  <----> 奖品信息(转json)
							用户抽奖记录:   set
								 value  <---->  用户唯一标识
							中奖报表:hash
								 key     <----> 对应活动信息主键
							 	 value  <----> 中奖信息(转json)	
			1.2.3.2,Reids与MySQL数据同步
				将中奖报表。奖品剩余同步		    
		1.2.3,,定时任务执行, 操作日志删除
			根据自身业务进行处理	 

	上述简单介绍功能实现的思路,,数据存储格式以及数据同步。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值