随着互联网技术的不断发展,各种高性能的存储系统如雨后春笋般涌现。其中,Redis是一个基于内存的Key-Value存储系统,被广泛应用于缓存、消息队列、计数器等领域,在大规模高并发的场景下发挥着重要作用。其中,Redis提供了多种数据结构,比如字符串、列表、集合、有序集合、哈希表等,其中集合在各种场
我需要从 redis 队列中执行一个简单的 lpop。在 go lang 中,如果我使用 blpop 使用阻塞弹出,则 foll 代码有效reply, err := redis.Strings(conn.Do("BLPOP", key, 1)) if err == nil { fmt.Println
记录一下 package redisimport ( "bytes" "encoding/json" "errors")type Job struct { JobId string `json:"job_id"` Uid uint64 `json:"uid"` Action string `json
微服务/分布式系统组件介绍一些微服务中的常见问题,包括常见概念,中间件,系统平台等。 限流器某些业务需要针对 IP 或者用户来进行一个限流操作,减少恶意请求,减轻服务器压力或者根据业务需求来进行频率控制。 限流可以在很多层面去做,比如 nginx+lua, API Gateway,或者在接口层直接来
前言 说起 Redisson,比较耳熟能详的就是这个看门狗(Watchdog)机制。 本文就一起看看加锁成功之后的看门狗(Watchdog)是如何实现的? 1加锁成功 在前一篇文章中介绍了可重入锁加锁的逻辑,其中 RedissonLock#tryAcquireAsync 方法是进行异步加锁的逻辑。
分布式锁顾名思义,分布式锁就是应用于分布式系统中的一种锁。在讨论如何使用分布式锁之前,先要搞明白为什么需要分布式锁。也即要弄明白,是什么,为什么,干什么。在一般的多线程编程中,编程语言本身提供了锁这个功能。以Go语言为例,官方标准库中提供了sync包用于实现互斥锁。但这个功能也是有限制的,它只能在单
锁是计算机编程中常见的一种用于控制并发访问程序中共享资源的机制。在分布式系统中,由于服务可能分布在不同的服务器上,因此基于本地锁的单机解决方案不能满足应用的需求。因此,使用 Redis 实现分布式锁是应用广泛的一种技术手段。本文将介绍使用 Golang 操控 Redis 实现分布式锁,帮助读者快速掌
package main import ( "context" "fmt" "time" "github.com/go-redis/redis/v8" ) func main() { redisCli := redis.NewClient(&redis.Options{ Addr: "
本文参考了以下地址的文章: https://github.com/Centny/Centny/blob/master/Articles/How%20build%20github.com%3amattn%3ago-oci8.md 一、安装oracle的OCI套件 1、OCI下载链接页面下载(i
镜像版本 在docker hub上搜索oracle,随便找了一个xe 11版本的镜像。 docker pull deepdiver/docker-oracle-xe-11g 镜像大小在1G左右,下载完成解压后大约2.7GB。 运行 docker run -d -p 1522:22 -p 1521:1


