随笔分类 -  Redis

基于Redis List实现消息队列
摘要:// Package main —— Redis 消息队列演示 // // 基于 Redis List 数据结构实现消息队列,核心思路: // - 生产者通过 RPUSH 将消息追加到 List 尾部 // - 消费者通过 BLPOP 从 List 头部阻塞式取出消息 // - RPUSH + BL 阅读全文

posted @ 2026-07-02 08:06 王景迁 阅读(18) 评论(0) 推荐(0)

基于Redis+go+lua脚本实现qps限流
摘要:实现qps限流每次判断是否要限流时,发送lua脚本给redis执行,控制令牌数量,刚开始令牌桶是满的。key缓存时间是容量/速率(单位是s)+10s。value使用hashmap,记录当前令牌数和上次时间,时间是绝对时间的秒数,取整。 package main import ( "context" 阅读全文

posted @ 2026-04-25 20:09 王景迁 阅读(18) 评论(0) 推荐(0)

Redis zset操作
摘要:# 创建带有3个元素的zset1 zadd zset1 2.0 "a" 1.0 "b" 3.0 "c" # 从zset1中弹出分数最小的元素 zpopmin zset1 # 从zset2中弹出分数最大的元素 zpopmax zset1 # 查看所有元素,显示时带上分数 zrange zset1 0 阅读全文

posted @ 2026-04-15 08:29 王景迁 阅读(9) 评论(0) 推荐(0)

redis zset原理
摘要:zset即有序集合sorted set,用分数进行成员的从小到大的排序。 2种数据结构 ziplist 条件:元素个数小于128,而且所有元素小于64字节。即zset-max-ziplist-entries 128zset-max-ziplist-value 64 基于双向链表保存压缩列表节点,保存 阅读全文

posted @ 2026-04-15 08:18 王景迁 阅读(35) 评论(0) 推荐(0)

go-redis写入和读取结构体
摘要:package main import ( "context" "encoding" "encoding/json" "fmt" "log" "github.com/go-redis/redis/v8" ) var _ encoding.BinaryMarshaler = &Student{} va 阅读全文

posted @ 2024-09-15 16:19 王景迁 阅读(125) 评论(0) 推荐(0)

Redis value的数据类型
摘要:key和value key是字符串value有多种类型,包括string、set(元素是字符串,去重)、sortset(元素是字符串,有序且去重)、list(元素是字符串)、hash(field和value组成键值对, field和value是字符串) 阅读全文

posted @ 2023-07-16 14:35 王景迁 阅读(44) 评论(0) 推荐(0)

Redis分布式锁问题
摘要:通过SET原子操作来设置key和过期时间 // 加锁// 如果key不存在,那么设置它的值,否则什么也不做SETNX lock 1// 10s后自动过期EXPIRE lock 10 // 2者合一,一条命令保证原子性执行SET lock 1 EX 10 NX 问题1:无法评估准确的加锁时间(自动续期 阅读全文

posted @ 2023-07-16 14:33 王景迁 阅读(158) 评论(0) 推荐(0)

导航