自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(2)
  • 收藏
  • 关注

原创 下载中心实现总结

背景:业务要求,需要一个全量导出数据库并生成excel表格的功能。因为数据量大,使用poi生成excel的速度也很慢,直接返回用户体验很差,所以打算开发一个下载中心来支持后台生成。实现:使用redis链表做一个简单的消息队列(系统采用多容器来做,消息队列可以简单实现各容器上下载任务负载均衡),传递的消息为后台启动函数的名称、参数等,数据库维护一张表简单记录下载信息,用于展示。每次点击生成excel,向redis提交一个相关任务信息,更新数据库,各个容器都有一个后台任务,它们会去尝试消费这个信息,某个容器

2021-11-02 21:09:23 738

原创 关于setnx实现锁

分享两则不同业务场景下使用Redis的setnx加锁操作1、使用Redis来实现递增编号。在redis中存储了当前的编号,为了保证多线程同时获取该编号,加1操作,再写回,不会出现数据不准确的情况,使用setnx对其加锁。加锁时会加上一个expire时间5000ms,在执行完对缓存中的数据操作后,会直接删除这个锁,以提高效率。获取编号时,如果成功拿到锁,直接进行相应操作,如果失败,重复尝试直到成功。(获取的编号会同其他数据一道写回数据库,如果遇到redis宕机或其他情况,导致编号数据丢失,会重启后,先从数

2021-09-19 20:13:31 621

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除