前言最近在我的技术群里,有位小伙伴问了大家一个问题:如何保证Mongodb和数据库双写的数据一致性?群友们针对这个技术点讨论的内容,引起了我的兴趣。其实我在实际工作中的有些业务场景,也在使用Mongodb,也遇到过双写的数据一致性问题。今天跟大家一起分享一下,这类问题的解决办法,希望对你会有所帮助。1常见误区很多小伙伴看到双写数据一致性问题,首先会想到的是Redis和数据库的数据双写一致...
2023-02-02 15:02:53 4038浏览 0点赞 0回复 0收藏
作者苏三呀来源公众号:苏三说技术前言我最近几年用MYSQL数据库挺多的,发现了一些非常有用的小玩意,今天拿出来分享到大家,希望对你会有所帮助。1.groupconcat在我们平常的工作中,使用groupby进行分组的场景,是非常多的。比如想统计出用户表中,名称不同的用户的具体名称有哪些?具体sql如下:selectnamefromusergroupbyname;但如果想把name相同的code拼接在一起,放到另外一列中该怎么办呢?答:使用g...
2023-02-02 15:01:34 3303浏览 1点赞 0回复 1收藏
前言我的上家公司是做餐饮系统的,每天中午和晚上用餐高峰期,系统的并发量不容小觑。为了保险起见,公司规定各部门都要在吃饭的时间轮流值班,防止出现线上问题时能够及时处理。我当时在后厨显示系统团队,该系统属于订单的下游业务。用户点完菜下单后,订单系统会通过发kafka消息给我们系统,系统读取消息后,做业务逻辑处理,持久化订单和菜品数据,然后展示到划菜客户端。这样厨师就知道哪个订单要做哪些菜,有些菜做好了,...
2022-04-12 15:31:54 1.3w浏览 0点赞 0回复 0收藏
前言无论是开发、测试,还是DBA,都难免会涉及到数据库的操作,比如:创建某张表,添加某个字段、添加数据、更新数据、删除数据、查询数据等等。正常情况下还好,但如果操作数据库时出现失误,比如:删除订单数据时where条件写错了,导致多删了很多用户订单。更新会员有效时间时,一次性把所有会员的有效时间都更新了。修复线上数据时,改错了,想还原。还有很多很多场景,我就不一一列举了。如果出现线上环境数据库误操作怎么...
2022-04-12 15:23:21 7099浏览 0点赞 0回复 0收藏
前言在分布式系统中,由于redis分布式锁相对于更简单和高效,成为了分布式锁的首先,被我们用到了很多实际业务场景当中。但不是说用了redis分布式锁,就可以高枕无忧了,如果没有用好或者用对,也会引来一些意想不到的问题。今天我们就一起聊聊redis分布式锁的一些坑,给有需要的朋友一个参考。1非原子操作使用redis的分布式锁,我们首先想到的可能是setNx命令。if(jedis.setnx(lockKey,val)1){jedis.expire(lockKey,timeout);}...
2022-04-12 15:11:18 1.4w浏览 0点赞 0回复 0收藏
前言sql优化是一个大家都比较关注的热门话题,无论你在面试,还是工作中,都很有可能会遇到。如果某天你负责的某个线上接口,出现了性能问题,需要做优化。那么你首先想到的很有可能是优化sql语句,因为它的改造成本相对于代码来说也要小得多。那么,如何优化sql语句呢这篇文章从15个方面,分享了sql优化的一些小技巧,希望对你有所帮助。1避免使用select很多时候,我们写sql语句时,为了方便,喜欢直接使用select,一次性查出...
2022-04-12 14:57:30 8211浏览 0点赞 0回复 0收藏
前言数据库和缓存(比如:redis)双写数据一致性问题,是一个跟开发语言无关的公共问题。尤其在高并发的场景下,这个问题变得更加严重。我很负责的告诉大家,该问题无论在面试,还是工作中遇到的概率非常大,所以非常有必要跟大家一起探讨一下。今天这篇文章我会从浅入深,跟大家一起聊聊,数据库和缓存双写数据一致性问题常见的解决方案,这些方案中可能存在的坑,以及最优方案是什么。1.常见方案通常情况下,我们使用缓存的主要...
2022-04-12 14:43:14 7979浏览 0点赞 0回复 0收藏