惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

云风的 BLOG
云风的 BLOG
博客园 - 三生石上(FineUI控件)
WordPress大学
WordPress大学
F
Fortinet All Blogs
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 叶小钗
爱范儿
爱范儿
美团技术团队
H
Hackread – Cybersecurity News, Data Breaches, AI and More
有赞技术团队
有赞技术团队
博客园_首页
T
The Blog of Author Tim Ferriss
T
Tailwind CSS Blog
V
Visual Studio Blog
Jina AI
Jina AI
博客园 - Franky
量子位
MongoDB | Blog
MongoDB | Blog
L
LangChain Blog
Apple Machine Learning Research
Apple Machine Learning Research
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
U
Unit 42
aimingoo的专栏
aimingoo的专栏
M
MIT News - Artificial intelligence

Redis

发现一个支持云同步的 Redis GUI 工具: RedisViewer 阿里云 Redis 命中率计算与监控的问题 Redis 运行一段时间后报错导致挂掉,有什么办法解决呢? Redis Stream 实现 MQ 的可行性 Redis 缓存数据 支持 WinXP/2003 的 Redis 服务端 怎么才能学好 redis,有什么好的教程或者 blog 推荐吗? 线上服务 redis 查询超时排查求教 有木有安卓 app 的 client 端呀? 除了 Tiny RDM 之外还有什么比较好用的 Redis GUI 工具么? Redis 支持 Hash 字段单独设置过期时间 Redis 加上密码后,整体性能下降 20%? 新学 redis 集群的疑惑 Garnet 真比 Redis 快吗? Redis 几乎每小时都出现大量超时,求助 问一下大家 redis 的配置 Redis 怎样将字节串传递给 lua 脚本? 微软 Garnet 的发展前景如何,有没有可能替代 Redis? 业内有没有把 redis 开启 aof=always 当做数据库使用的? 有谁试过 redis 的 string 自增性能吗, 我这怎么是个位数? 突然想起一个问题,你们用的 redis 有崩过吗?是什么原因崩的? 关联表查询结果的 Redis 缓存如何设计 API 请求如何方便的做并发测试? 请教兄弟们一个问题, datagrip 连接 redis 如何显示 redis 键的 过期时间呢? 关于 Redis RESP3 的想法 轻便式 Redis Monitor 面向研发人员图形可视化监控平台 Redis 中使用 pipeline 执行命令时,有单次执行数量的限制吗? [故障模拟]redis cluster 3 机 3 主 6 从,主节点都转移到了其中一台机器上,然后这台机器宕机 你们现在连接 redis 集群是用的什么工具,可以分享一下下载链接吗? 求教一下 Redis 哨兵模式下,主从延迟问题
对 redis 的 zset 做分片的时候怎么选择分片个数
ben548 · 2023-07-08 · via Redis

背景:活动场景,用户可以订阅活动,订阅完会在活动开始前收到开始的通知,目前了解到如果是热门活动订阅人数可能超过百万,但是有些不怎么热门的活动可能只有数百人或者人数是 0 。
现状:关注人数存在 redis 的 zset 中,每个活动有一个独立的 zset 。发送 push 消息通知的时候,是分页遍历 zset ,逐个发送通知。可能在关注数超百万的时候需要较长的处理时间(比如超过 5 分钟)。
要求:希望在推送消息时尽可能的快,低延时。
为了达到这个要求,选择对 zset 做分片,分片的规则是:按订阅用户的 userid 做 hash 取值,取值结果按分片数取模,在分配到相应的 zset 分片上。
问题:zset 数据除了承担 push 消息通知的数据源之外,还用于查询用户是否订阅该活动的状态查询(这个没啥问题,找到对应的分片,然后查询 zscore 即可)和订阅总数计算的角色。如果我为了某些活动可能超过百万的关注订阅数,而设置 1024 个 zset 分片,是不是意味着绝大多数的活动,为了计算总数都要去做 1024 次 zcount 再将 result 相加才能得到结果?感觉也不是很好的设计。。。。(当然也可以总数单独维护,不通过 zset 分片结果相加获取,就是这样又增加了存储成本)
大家觉得该怎么做比较合适呢?