
黑马点评
文章平均质量分 92
Redis
确实可以
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
8.达人探店、好友关注、附近商铺搜索、用户签到、UV统计
1、达人探店1.发布探店笔记2.查看博客3.点赞笔记关于点赞的分析实现步骤4.点赞排行榜分析使用Redis的哪种数据类型使用sortedSet修改之前的代码2、好友关注1.关注和取关2.查看他人主页查看用户主页博客分页查询3.共同关注4.关注推送推送到粉丝收件箱实现分页查询收邮箱3、附近商铺搜索1.GEO数据结构 2.数据预热,将店铺数据按照 typeId 批量存入Redis。3.查找附近商户4、用户签到1.BitMap2.签到功能 3.签到统计5、UV统计1.两个概念2.Hyperloglog项目地址原创 2024-10-30 11:28:32 · 953 阅读 · 0 评论 -
7.使用Redis进行秒杀优化
上面的都是我们为了解决程序可用所做的。现在程序执行不会出现超卖问题的。但是其性能可能不太好。– 判断秒杀库存是否足够 –加分布式锁 –在这7步操作中,加粗黑体字的操作是要去操作数据库的,而且还是一个线程串行执行, 这样就会导致我们的程序执行的很慢,所以我们需要我们可以将一部分的工作交给Redis,而是通过开启一个独立的子线程去异步执行数据库的一些操作,从而大大提高效率。原创 2024-10-28 18:03:43 · 1412 阅读 · 0 评论 -
6.一人一单超卖问题和分布式锁
很多时候有些商家要拿出一部分好用且贵重的产品来做促销引流,而将该物品进行低价售出或者出售一些折扣力度很大的优惠卷,此时为了防止有人恶意低买高卖以及保证引流的效果,我们。一人一单超卖问题可以分成两种,单机的和集群下的。原创 2024-10-25 10:01:12 · 844 阅读 · 0 评论 -
5.全局唯一的订单id和超卖问题
线程1查询库存,发现库存充足,可以创建订单,当同时线程2和线程3也发现库存充足。然后线程1执行完扣减操作后,库存变成了0,但线程2和线程3也同样完成了库存减扣操作,最终就导致库存变成了负数。线程1查询完库存后进行库存扣减操作,线程2在查询库存时,发现库存充足,也准备执行库存扣减操作,但是需要。综上所述,使用CAS法要更加好,能够避免额外的内存开销,而对于我们的需求,需要修改代码的地方也很少的。,结果发现库存数量发生了改变,这就说明数据库中的数据已经发生了修改,需要进行重试或直接失败。原创 2024-10-23 10:05:18 · 738 阅读 · 0 评论 -
4.缓存穿透、缓存雪崩、缓存击穿的问题
缓存出现问题的原因和解决方案如下:该图来自 极客时间专栏《Redis 核心技术与实战》,再经过一些修改很明显,服务熔断、服务降级、请求限流都是属于"有损"方案,再保证数据库和整体系统稳定的同时,也是会对业务应用带来负面影响的,要是这些方案有好处又无损的话,平常时候怎么不使用呢。使用服务降级,有部分数据的请求就只能返回错误信息,无法正常处理使用服务熔断,那么整个缓存系统的服务都会被暂停,影响的业务范围是更大的。原创 2024-10-22 09:23:39 · 689 阅读 · 0 评论 -
3.添加缓存和缓存更新策略
我们查询商店的时候,通过接口查询到的数据有很多,我们希望在此。对于店铺的详细数据,这种数据变化比较大,店家可能会随时修改店铺的相关信息(比如宣传语,店铺名等),所以对于这类变动较为频繁的数据,我们是直接存入Redis中,并且设置合适的有效期。在internal目录添加shopservice文件夹,添加shopservice.go文件。软件首页的这块列表信息是不变动的,因此我们可以将它存入缓存中,避免每次访问时都去查询数据库那么这里一个key就会有多个元素,那我们可以使用Redis的list类型来存储。原创 2024-10-21 10:26:17 · 1382 阅读 · 0 评论 -
2.登录业务
登录有两种方式,一种是通过手机号码发送验证码登录,另一种是通过账号密码进行登录。通过验证码登录的话,服务端就要存储该手机号码的验证码,这就键值对,还有要给验证码设置过期时间,这个就可以存储在Redis中。在config.yaml添加Redis的内容在config.go文件添加Redis配置的结构体。在db目录创建redis.go文件。使用一个常用的go在main.go中进行创建redis客户端。原创 2024-10-18 16:12:51 · 1214 阅读 · 0 评论 -
1.项目初始化
业务错误码用来指代一个错误类型,该错误类型需要包含一些有用的信息,例如对应的业务状态码、对外展示的Message。对于一个web服务器,客户端正在使用,而这时服务器却关闭了,用户可能会收到错误消息,并且不知道发生了什么。我们也会有些要求,想要在程序运行中,更改了配置文件后,程序不用重启也可以生效。比如http的监听端口,在程序启动后,你再更新配置文件也不会起作用的。然后再创建config目录,在该目录中新建 config.go 文件,用于声明配置属性的结构体并编写读取段配置的配置方法。原创 2024-10-17 17:52:59 · 1040 阅读 · 0 评论 -
Go语言实现黑马点评项目
⿊马点评是⼀个⼤量使⽤Redis的项⽬,其功能类似⼤众点评。该项目原是用Java写的,这里我使用Go语言按照自己的思考来改写。可以使用命令行curl或者postman软件或者Go语言编写http客户端来测试。使用Go语言实现黑马点评项目,这里是只实现了后端,本人能力有限,没有实现前端。原创 2024-10-17 17:52:13 · 528 阅读 · 0 评论