E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
Go+Redis
Go+Redis
实现计数器限流和滑动窗口限流
Go+Redis
实现的并发安全限流器限流常用有4种算法计数器滑动窗口漏桶算法令牌桶算法本文的限流器实现了计数器限流和滑动窗口限流,提供了非并发安全和并发安全的实现,方便两者的对比。
毛小子
·
2023-08-08 07:00
golang
redis
redis
golang
Go+Redis
实现延迟队列实操
目录前言简单的实现定义消息PushConsume存在的问题多消费者实现定义消息PushConsume存在的问题总结前言延迟队列是一种非常使用的数据结构,我们经常有需要延迟推送处理消息的场景,比如延迟60秒发送短信,延迟30分钟关闭订单,消息消费失败延迟重试等等。一般我们实现延迟消息都需要依赖底层的有序结构,比如堆,而Redis刚好提供了zset这种数据类型,它的底层实现是哈希表+跳表,也是一种有序
·
2022-11-11 16:33
Go与Redis实现分布式互斥锁和红锁
TryLock和Unlock实现Lock实现实现看门狗机制看门狗实现红锁加锁实现看门狗实现解锁实现前言在项目中我们经常有需要使用分布式锁的场景,而Redis是实现分布式锁最常见的一种方式,这篇文章主要是使用
Go
·
2022-09-30 18:49
Go+Redis
实现分布式互斥锁和红锁
前言在项目中我们经常有需要使用分布式锁的场景,而Redis是实现分布式锁最常见的一种方式,这篇文章主要是使用
Go+Redis
实现互斥锁和红锁。
小二上酒8
·
2022-09-30 15:09
golang
redis
分布式
算法
数据结构
go+redis
实现消息队列发布与订阅的详细过程
在做项目过程中,实现websocket得时候,不知道哪里写的不太合适,客户端消息收到一定程度,剩下的消息收不到,修改了缓冲区大小,还是没有解决问题,后面因为项目结束期比较紧张,没有时间调试消息的时候,改用了redis队列去做了消息得暂存,客户端轮询去拿对应的消息。1.生产者随机发布消息,用rpush发布。2.消费者用lpop订阅消费,一旦没有消息,随机休眠。redis做消息队列的缺点:没有持久化。
·
2022-09-18 18:52
Go + Redis 实现分布式锁
文章目录一、前言1.1需要对交易订单加锁原因1.2加锁方案二、
Go+Redis
实现分布式锁2.1为什么需要分布式锁2.2分布式锁需要具备特性2.3实现Redis锁应先掌握哪些知识点2.4golang连接
杰哥的技术杂货铺
·
2022-08-23 08:38
golang
redis
golang
Go+Redis
实现分布式锁
setnx
expiration
用
Go+Redis
实现分布式锁的示例代码
目录为什么需要分布式锁分布式锁需要具备特性实现Redis锁应先掌握哪些知识点set命令Redis.lua脚本go-zero分布式锁RedisLock源码分析关于分布式锁还有哪些实现方案项目地址为什么需要分布式锁用户下单锁住uid,防止重复下单。库存扣减锁住库存,防止超卖。余额扣减锁住账户,防止并发操作。分布式系统中共享同一个资源时往往需要分布式锁来保证变更资源一致性。分布式锁需要具备特性排他性锁的
·
2021-12-19 13:44
Go+Redis
实现简单的消息队列
Go+Redis
实现简单的消息队列前言假设我们有这样一个场景,系统会在某个特定的情况下给用户推送一条消息,可能是短信、邮件或站内信,由于该场景消息可能会在某一个时刻同时推送大量的消息,且主进程不希望会阻塞
·
2021-10-04 16:03
golangredis
go+redis
实现消息队列发布与订阅
1.生产者随机发布消息,用rpush发布。2.消费者用lpop订阅消费,一旦没有消息,随机休眠。redis坐消息队列的缺点:没有持久化。一旦消息没有人消费,积累到一定程度后机会丢失packagemainimport("fmt""time""os""strconv""math/rand""github.com/gomodule/redigo/redis")constRMQstring="mqtest
小怪兽狂殴奥特曼
·
2020-01-01 11:33
go+redis
模拟实现分布式锁
参考这篇文章#Redis分布式锁的正确实现方式实现的分布式锁整个过程可以分为四步:+先用SETNX设置key。key是唯一的,统一时刻只有一个客户端的setnx指令能成功,满足锁的唯一性。如果成功,说明没有人持有锁,否则锁被占有,则获取锁的释放时间,然后进入睡眠。睡眠时间为一个任意的值,小于锁的TTL。用EXPIRE设置key。expire是为了防止客户端崩溃锁变成死锁。SETNX和EXPIRE两
小怪兽狂殴奥特曼
·
2019-04-24 16:57
上一页
1
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他