![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
redis
fwhezfwhez
欢迎大家成为我的粉丝。
展开
-
Golang基于Redis实现分布式读写锁
package redistoolimport ( "github.com/fwhezfwhez/errorx" "github.com/garyburd/redigo/redis" "time")type RedisRWMutex struct { key string maxlocksecond int // 锁定状态标记的最大时间 maxretryTimes int // 最大阻塞重试次数 retryInteval原创 2022-03-07 10:02:33 · 1180 阅读 · 1 评论 -
Redis 分布式锁
// 阻塞等待直到可用。失败时retryInterval间隔后重试,重试次数超过maxRetry后返回// true 放行// false 已达最大重试次数,仍然拿不到锁,建议打回。func LockTil(conn redis.Conn, key string, seconds int, maxRetry int, retryInterval time.Duration) bool { if Once(conn, key, seconds) { // 放行 return true }原创 2022-02-11 10:23:20 · 554 阅读 · 0 评论 -
Redis 定长队列(支持redis集群)
前言某些业务场景,需要实现原子性的,性能可靠的分布式定长队列,它必须具备以下功能:队列具备失效期。队列最大长度为n,并且当元素满了时,拒绝添加新数据。队列最大长度为n,当元素满时,弹出最早的数据,接受新的数据。分布式api可以低成本接入和使用。实现考虑使用redis来实现源码package redistoolimport ( "github.com/fwhezfwhez/errorx" "github.com/garyburd/redigo/redis")// 定长lis原创 2021-02-07 15:40:39 · 3918 阅读 · 0 评论 -
redis配置文件redis.conf详解
前言默认的redis.conf内容太多了,主要是注释看着很烦人,翻页和查找对应的配置更烦。本篇文章旨在了解redis的常用的配置参数。bind和protected mode为什么要将bind和protected mode放在一起讲。因为要想内网的其他服务器可以访问redis,那么以下两种做法都可以做到:关闭保护模式,并将bind设置成0.0.0.0开启保护模式,设置密码,bind设置0.0.0.0bind 0.0.0.0设置成0.0.0.0可以供给内网其他服务器访问。设置成127.0原创 2020-11-05 20:28:39 · 251 阅读 · 1 评论