Java30天学习计划之redis集群队列使用

之前和朋友吃饭时聊到分布式环境下抢优惠券的实现,他说道用redis集群队列来实现,具体步骤大概是

一,将优惠券已集合的形式存入redis集群

二,通过poll的形式从集群里获取,当获取不到时,说明优惠券已经抢购完

这也是当下比较流行的处理方式,的确在分布式环境下,通过redis缓存来处理比数据库处理要高效多了

今天自己就尝试的按照他说的方式在rediredis集群环境进行了测试,

首先获取redis集群的连接,

第二,执行redis的lput(string key,string... strings)方法,参数key和string数组

该方法会把string数组存入redis已队列的形式,

第三执行redis的lpop(string key) 参数key 

该方法已先进先出的方式把存入的队列的数据一一抛出

如果全部队列取完则结束

个人尝试后,感觉是要高效许多

个人观点:待优化点:

1,redis服务中断,无法正常获取怎么处理?

由于这几天,项目测试环境调用的redis集群的确出现故障,导致服务无法调用,所以我们在捕获异常后,进行对数据库层面的操作

2,如果并发量非常巨大,redis无法承受这么大的并发量怎么处理

通过阻塞队列的形式,如果队列塞满 的话,则直接拒绝未放入队列的请求

你可能感兴趣的:(Java30天学习计划之redis集群队列使用)