- 博客(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关注的人