各位 V2EXer 大家好,我是《 Redis 应用实例》的作者黄健宏!
最近新书刚刚出版,今天问出版社拿了些样书进行宣传,好些年前在 V2EX 给大家送过我的其他两本 Redis 书,大家反应都很热情,所以这次我也一如既往地回到这里办赠书活动,希望这次也能得到大家的关注吧!
这次给大家带来 3 本我的新书《 Redis 应用实例》,以下是本次赠书活动的规则:
请回复本帖并写出您使用 Redis 的用途,也即是您拿 Redis 来干什么,实现什么功能、做什么应用,诸如此类
我会在大家的回复中选择 3 条我觉得有趣或眼前一亮的回复,并向每位回复者赠送《 Redis 应用实例》纸书 1 本
本次活动到 2024 年 12 月 2 日 0 时截止,本人保留所有解释权
感谢大家参与此次活动~!
1
vip5000521 12 天前
为了白嫖一本书,一定要亲手去 GPT 搜索一下.
1. 缓存 功能:Redis 被广泛用作缓存层,以提高数据访问速度和降低数据库负载。 应用:在高并发的应用中,可以将频繁访问的数据缓存到 Redis 中,以减少对后端数据库的查询。 2. 会话存储 功能:Redis 可以用于存储用户会话信息,提供快速的读写能力。 应用:在 web 应用中,可以使用 Redis 存储用户的登录状态和会话数据,确保快速响应。 3. 实时数据处理 功能:Redis 支持发布/订阅( Pub/Sub )消息传递模式,可以用于实时数据处理和消息传递。 应用:实时聊天应用、在线游戏的实时通知等场景。 4. 排行榜和计数器 功能:Redis 的排序集合( Sorted Set )非常适合用于排行榜和计数器。 应用:社交媒体上的点赞、评论计数,游戏中的分数排行榜等。 5. 数据持久化 功能:虽然 Redis 是内存数据库,但它支持将数据持久化到磁盘,以防止数据丢失。 应用:可以在需要快速访问和持久存储的情况下使用 Redis 。 6. 分布式锁 功能:Redis 可以实现分布式锁,确保在分布式系统中资源的安全访问。 应用:在微服务架构中,使用 Redis 实现分布式锁可以防止多个实例同时修改同一资源。 7. 数据分析 功能:Redis 的数据结构(如哈希、列表和集合)使其适合处理复杂的数据分析任务。 应用:实时分析用户行为、统计数据等。 8. 任务队列 功能:Redis 可以用作任务队列,支持高效的任务调度和处理。 应用:在后台处理任务、异步处理等场景中使用 Redis 作为消息队列。 |
2
giserman001 12 天前
我公司专门做物联网,使用 redis 主要是为了缓存,提升接口请求速度。
|
3
donaldturinglee 12 天前
想通过学习实例用 C++重新实现一个 mini redis ,用来学习数据结构和缓存
|
4
78786381 12 天前
抖个机灵,拿 redis 当数据库
|
5
liuqitoday 12 天前
我这里目前使用的大部分场景还是缓存和分布式锁
|
6
CathayChen 12 天前
缓存 队列 小项目必备的,抽不中就自己去下单购买
|
7
sun522198558 12 天前
缓存
|
8
defunct9 12 天前 2
垫桌子腿用
|
9
luziafy 12 天前
我们用 redis 的作用就是放下 token ,但是说实话把 token 放 MySQL 也行,放文件也行,没有什么区别,因为我们只有一万多用户...
|
10
ca2oh4 12 天前
不是大学生,给我
|
11
jaylee4869 12 天前
API Cache & User Login Session
|
12
cxxlxx 12 天前
学习,几年前上学校招时候买了 Redis 设计与实现,最近准备再搞一本学习下新的特性
|
13
Ansen 12 天前
你们都拿来做缓存吗? 我司直接拿 redis 作为主数据库(aof),8 年多了, 没啥问题,这两年项目不行了,为了省内存进行了二次开发,集成了 RocksDB 的冷数据落地功能
|
14
brookepe 12 天前
缓存 队列
|
15
HFX3389 12 天前 1
@vip5000521 #1 但 V2 的规则有一条:请不要把 AI 生成的内容发送到这里
|
16
fengci 12 天前
我是大学生,给我
|
17
HFX3389 12 天前
我用 Redis 做 IP 的心跳包,60 秒 TTL ,程序订阅 redis 过期消息 60 秒如果没接收到该 IP 的数据就发信息到手机
|
18
fidetro 12 天前
做客户端的,应该用不上,不一定会看,但是想要
|
19
chandlerbing9317 12 天前
我去,大神,你的《 Redis 设计与实现》是我读过最好的国产编程书籍,这里居然见到本尊了。
|
20
RobinzzZ 12 天前
做集群会话共享。 闪光弹!!!!
|
21
PainfulJoe 12 天前
缓存,队列,分布式锁
|
22
fenglangjuxu 12 天前 1
💡💡💡💡💡 有没有眼前一亮?我可是 不辞劳苦去特意找的 [灯] 的 emoji
希望作者的书,有些实质的东西,能为获赠者 更为那些花钱买的人 照亮一二,对得起别人花的钱。 不至于像我一样,本来很少买书,但是买的书都是垃圾,以至于我都不想买实体书了。 |
23
8355 12 天前
你好老黄
|
24
zzzzaaa 12 天前 via iPhone
做缓存 ,避免数据库被打崩,做队列,消费消息
|
25
yessirpopesama 12 天前
缓存、分布式锁、排行榜
|
26
HCL666666 12 天前
我们部门是做审核的 我们用 redis 作为消息队列向下游业务方回写审核消息 很多年了 没有任何问题
|
27
Deteriorator 12 天前
上一本书还在看, 又有新书了? 6
|
28
aladdinding 12 天前
用 redis 秒杀面试官!
|
29
madtwilight 12 天前 via Android
也就是存放 token ,以及服务发现路由信息
|
30
cookygg 12 天前
|
31
brom111 12 天前
✨✨✨✨✨✨✨✨✨✨✨✨✨太亮了哥
|
32
bringyou 12 天前
以前看过《 Redis 设计与实现》,里面逐行逐行讲解源码的方式让我收获很大。我使用 redis 当作缓存和消息队列(stream)
|
33
PersistentCutie 12 天前
1. 缓存
用途:存储热点数据,减少数据库压力,提高系统响应速度。 应用场景: 缓存常用的用户信息、配置数据等。 电商平台的商品详情页、热销商品列表缓存。 API 请求结果的缓存以减少后端计算。 2. 分布式锁 用途:实现分布式系统中的同步机制,避免资源竞争。 应用场景: 秒杀系统中,控制用户抢购商品的并发数。 定时任务系统的分布式调度,确保任务不被多次执行。 3. 消息队列 用途:通过 Redis 的 List 或 Stream 实现消息队列功能。 应用场景: 实现简单的生产者-消费者模型。 异步任务处理,比如发送邮件、短信等。 实时数据流处理。 4. 会话管理 用途:存储用户登录会话信息,支持快速读写。 应用场景: 用户认证时,保存 Token 或 Session 信息。 实现单点登录( SSO )功能。 防止 Session 固化,支持分布式负载均衡。 5. 实时排行榜 用途:基于 Redis 的有序集合( Sorted Set ),可以高效实现排名功能。 应用场景: 游戏的实时积分排行榜。 社交平台的热门话题榜单。 电商平台销量或搜索热度排名。 6. 数据分析 用途:利用 Redis 高效的计数功能( HyperLogLog 、Bitmap 等),支持实时统计。 应用场景: 网站独立用户( UV )统计。 实时在线人数统计。 活动参与数据统计。 7. 分布式数据共享 用途:在多个服务间共享数据,避免多次查询或计算。 应用场景: 分布式系统中共享的配置数据。 数据同步工具。 实现轻量级的共享状态管理(如标志位、状态机等)。 8. 地理位置服务 用途:使用 Redis 的 Geo 功能,处理地理位置信息。 应用场景: 附近的人/店铺查询。 基于位置的路径规划或服务推荐。 实现基于地理围栏的功能。 9. 计数器 用途:高效处理需要实时计数的场景。 应用场景: 实时点赞数、播放量统计。 限流操作(如接口调用计数)。 商品库存实时扣减。 10. 发布/订阅 用途:通过 Redis 的 Pub/Sub 模型实现消息的广播和订阅。 应用场景: 实现实时聊天系统。 系统间的消息通知。 多实例间的配置热更新。 11. 延时任务 用途:使用 Sorted Set 或 List 来实现任务的延迟执行。 应用场景: 定时取消未支付的订单。 发送延时提醒或通知。 事件到期的处理逻辑。 12. 流量削峰填谷 用途:结合队列和限流功能,对高并发请求进行缓冲和削峰。 应用场景: 秒杀或抢购系统的请求削峰。 限流策略的实现,例如限 IP 、限用户操作。 |
34
baohan 12 天前
缓存数据库查询/计算的结果
当消息队列,当分布式锁 存储一些非关键数据(登录 token 之类的) 存榜单信息 存排行信息 算 uv 配合 lua 脚本可以把一些复杂点的操作原子化 |
35
NASK 12 天前
数据库、队列、缓存、搜索本质上都用来解决数据密集型应用的的数据系统。由于越来越多的应用系统需求广泛, 单个组件往往无法满足所有数据处理与存储需求,所以产生了上面这些不同用途的数据系统,如果还不能满足就考虑分布式。另一方面,不同功能的数据系统的的边界越来越模糊,比如 Redis 可以同时用于数据存储和消息队列。
|
36
ziry 12 天前
做缓存用,主要用于会话管理、热的数据缓存、分布式锁等。
|
37
ninetyone 12 天前
最基础的用途用来当做缓存加速、登录会话管理和分布式锁。
在 Redis 使用手册理还学会了通过 GEO 来计算地理位置,已经用在了公司的一个给加油站按距离排序的项目上。 |
38
yiihub 12 天前
还有没有,来了
|
39
solupro 12 天前
支持支持,多年前读过作者的《 Redis 设计与实现》受益匪浅。
|
40
UIHIHUHIU 12 天前
和数据库有关的东西吗?还有 Python 实例代码,感觉很厉害的样子,可能考上研后会用得上
|
41
jinhanzhang2005 12 天前
支持,在校大学生,数据库课给大家做过 pre 讲 redis 基础,但是自己也是学了皮毛,想深入学习一下。
|
42
intchensc 12 天前
还没用过,如果送我书,我就开始学 redis
|
43
manami 12 天前 2
作者大大您好,我是 redis 的忠实用户,我在自己写的社区程序把 redis 用到了极致。
我把每一个用户、主题、回复等(网站目之所见)都缓存了起来,有改动就做对应更新,并同步修改 redis 。除了用作缓存,还使用了 redis 5.0 版本后的 streams ,结合 websocket 实现消息的实时推送。 在 redis 的加持下,社区程序无论是性能、访问速度都变得非常之快,快到飞起! 社区地址: https://fffdann.com |
44
cheny233 12 天前
黄 sir ~ 我要进步!!!
|
45
proprobe 12 天前 via Android
还在学习中,买了本《 redis 开发与运维》在想 3.0 会不会太老了,您就写了最新的。最开始学的时候是跟的视频教程,但一直都只是练手的学习项目,对 redis 用 lua 去实现事务比较感兴趣,很多游戏开发都见到用 lua 去写脚本。
|
46
XieBoCai 12 天前
公司花大价钱买了 Redis 服务,但我不知道 Redis 能干嘛,所以我需要这本书
|
47
likeyagao 12 天前
Redis 作为内存数据库,有优点,也有缺点,大型应用中,海量数据,内存消耗是肉眼可见的,主要体现在一个"快"字上,因为好用,所以我用来存点热点数据、还是不错的
|
48
noder 12 天前
Redis, 在一次面试过程中被面试官 DISS 了足足 10 分钟,今因失业,所以不得不重新打开这段技术话题。希望借助能深入理解 Redis, 并帮助我下次战胜面试官。嗯,就是这样想的。
|
49
bojue 12 天前 1
@chandlerbing9317 你说中国人不骗中国人,我就下单
|
50
yuanyao 12 天前 1
第一家很小的直播公司,使用 redis sorted set 做直播间各种排行榜,还有数据缓存。
第二家头部短视频公司,使用 redis 做持久化存储,如主播个人信息,主要借助基础平台提供的异构数据同步完成 mysql->redis 的自动同步;使用 redis 做临时数据存储;使用 redis 做热点数据缓存; 第三家公司,使用 redis 做用户 AccessToken 存储,过期时间和 token 有效期是一致的。 |
51
cyndihuifei 12 天前 via iPhone
居然看到作者的帖子,要留言
|
52
cobbage 12 天前
session 会话、缓存、队列
|
53
fengFly 12 天前 via Android
我们项目拿 Redis 实现了分布式 sequence 来替代国产 goldendb sequence 不让用的窘境,进而生成全局确认号,做批量理财核心应用
|
54
pinkrab 12 天前
V 社真的卧虎藏龙,第一次离大佬这么近。
|
55
EnderAvaritia 12 天前
可以拿来存小说吗?听说数据库用来存小说性能很不错
|
56
admol 12 天前
会话、缓存、锁
|
57
kneo 12 天前
三本也太少了……前面的挺努力了,我让了吧。
|
58
dcsuibian 12 天前
支持。有幸读过大佬的书。
我倒没有用 Redis 干什么特别的事,不过我在尝试写一个 Java 版的 Redis ,想用于测试环境使用 https://github.com/dcsuibian/jredis |
59
ylhawj 12 天前 via iPhone
看了前五章,感觉很不错,买一本支持一下,我们主要用来存放 session ,分布式锁,
|
60
zuotun 12 天前
感觉好多楼有种淘宝好评的味道,看了一下书显示五折也才三十五块钱而且接近两百页了,V 站的人至于吗?(没抽中自己买 +1
|
61
geekerit 12 天前
1.缓存:核心功能,必须的,更确切的是多实例运行时的共享缓存;
2.单点登录:多系统存储用户登陆信息 3.限流器:外部系统请求接口需要限流,可以是全局限流或者针对单实例的限流 4.分布式锁:系统关键处理如任务的分发、资源锁定等 5.灰度实例存储:我们系统的业务需要在某些场景下实现部分业务走灰度发布,此时需要在服务实例启动时标记自身为灰度节点上报到 Redis ,其他所有业务节点通过判断是否处于灰度节点,来决定是否执行该节点的业务 暂时就想到这么多吧,大佬的书很早就读过,参与下 |
62
lmaq 12 天前
缓存,队列,分布式锁
|
63
wxd21020 12 天前
一个呼叫视频坐席的项目,使用 redis 做呼叫队列。
|
64
ajunno 12 天前 via Android 1
我刚参加工作时,就是读您的《 Redis 设计和实现》入的门,写的真好。工作中用 Redis 做任务队列,也借助 Redisson ,间接用 Redis 实现了分布式锁和延迟队列。Redisson 设计的很巧妙,很多其他语言封装的库也都在模仿。最近一个比较有意思的场景:接手的项目将 Protobuf 结构直接序列化写到 Redis 中,产生了原子编辑的新需求。我用 Lua 脚本反解 Protobuf 的 TLV 比特流,在 Redis 中原地修改,避免读出-修改-写入的额外开销。
之前维护其他项目的时候,也遇到过把 Redis 当 DB 用、结果数据增长太猛难以为继的情况。搭了一套腾讯开源的 Tendis 集群,是个兼容 Redis 协议的 RocksDB 封装,硬盘容量可比内存大多了,后来没有维护了。此外还维护过一段时间 sentinel 集群,遇到过生产环境选主失败的 P0 大场面,发现是配置漂移引起的,含泪扛下了前任草台班子的锅。 最后感慨 Redis 发展很快,已经有点跟不上变化。前不久读文档发现,从 7.4 开始支持对 hash 的 key 设置 ttl ,我工作中的一些业务场景确实需要这个,但线上万年 Redis 5 ,只能望梅止渴。 |
65
alfa 11 天前
占个位
|
66
easymbol 11 天前
这个不算抽奖,算是抽好文采吧,这是为下本书找协作者?😂
|
67
facelezz 11 天前
除了限流器,说个大家可能很少使用到的,可过期信号量。这个特定场景下很好用,比如在集群范围内控制 30 分钟内只有 5 个事情正在处理,超时后自动允许新的加入。实现思路来自 Redis 实战这本书
|
68
facelezz 11 天前
题外话,看有的人提到了 redisson ,我也用了很久,不过这个库感觉设计思路有些问题,虽然实现了 jdk
的一些接口,但大部分情况都只是用法相似,使用者还是需要很大的心智负担去理解底层的实现,如果 redisson 不实现 jdk 的接口,自己定义一套接口 我觉得更好,当然也只是一家之言。 |
69
zhiouzhou 11 天前 via iPhone
太难了,不都是直接回复抽奖吗?
|
70
facelezz 11 天前
很想知道像您这样非常熟悉 redis 的人,如何评价常用库的好坏,比如 jedis ,lettuce 、redisson ,如果能解答下再好不过了
|
71
ldyisbest 11 天前
我太想进步了
|
72
LieEar 11 天前
我说一个:
公司业务是爬虫,任务生成脚本把每天的任务推送到 redis 的 list 保存,下游 10 个消费者使用 rpop 消费。 redis 来保证并发安全。同时,redis 的 list 是双端的,例如要实时更新某个数据,直接 rpush 就能实现。 |
74
Jason168 11 天前
正要学习 redis
|
75
F7ionsy 11 天前
学习
|
78
m4a1deakvv2 11 天前
送我 我学习 谢谢
|
79
fxjson 11 天前
1. session 共享,我们 web 服务是两个项目,用 redis 存储 session 进行数据共享
2. app 端 token 存储 3. 单据锁,解决因为我们业务复杂,多个用户同时审批单据,造成库存出多次的问题;同时用锁避免单号生成,防止击穿数据库 4.自增计数,生成单号,另外因为历史原因我们表不是主键自增,所以用自增作为主键 5.队列,解决耦合度高、同时进行削峰 6.string 缓存,热点,业务变更不频繁的数据进行缓存 7.hash 缓存结构化消息 8. |
80
iBenlim 11 天前
我司用它做系统之间的数据同步,每天几十万订单数据。
|
81
toms0301 11 天前
想用来做缓存优化一下目前的系统
|
82
jackfanwan 11 天前
当前主要做临时数据存储和锁,目前的公司使用很广泛,基本涉及了后台系统和 c 端商城;
|
83
hzzhzzdogee 11 天前
@defunct9 我是斜着垫显示器用
|
84
NoKey 11 天前
有个比较难的问题,大佬知道咋解决不?我们的数据库的数据,来源一部分是通过应用服务写入,还有一部分是通过两个数据库之间同步的途径写入的。通过应用写入的这部分,使用 redis 比较简单,就是常规的更新维护即可;但是通过数据库同步方式写入的数据,就很难了,怎么样实现数据库数据更新了,带动 redis 数据的更新呢?谢谢。
|
86
volatileSpark 11 天前
我靠,Redis 设计和实现 这本书可以说是当时接触 redis 的最帮助我的一本书了,没想作者都 v2 有账号啊。
|
87
Jobcrazy 11 天前 via iPhone
1. 我修改了微软的 Redis 库,让它支持 XP 以上全部 Windows 系统,已开源到 https://github.com/Jobcrazy/Redis-WinLegacy
2. 之所以做了这个 1 ,是因为我做的一个基于 Windows 的服务端软件,它的需要拦截 TCP 的 SYN 包,把里面的某个数据缓存起来(有 TTL ),然后等待其他进程要把它取走。我想着我自己来写无法保证稳定可靠,所以选择了修改 Redis |
88
Mungist 11 天前
缓存、分布式锁
|
89
DeWjjj 11 天前
作者,我也不想看盗版啊。
|
90
lingcen000 11 天前
做在线特征服务的,用 redis 主要是为了提升大批量获取特征数据的性能,但是有个问题一直没搞明白,
数据经过 profobuf 压缩后,算出来的大小 和 redis 内存实际的涨幅不一致,相差 1.5~2 倍的样子。 大佬能否顺便给解答一下 |
91
xljya 11 天前
大学生 估计送了也是吃灰,等工作需要了解更深入 会先想到这本书的。
|
92
whoisjohnlee 11 天前
除了基础缓存,Redis 的订阅发布及其好用。现在配置重读都是广播消息到服务后触发重读
|
93
dettan 11 天前
新版的 redis 有时序数据的功能 , 了解了一下最终没敢用在项目上
|
94
alipei666 11 天前
很想知道像您这样非常熟悉 redis 的人,如何评价常用库的好坏,比如 jedis ,lettuce 、redisson ,如果能解答下再好不过了?谢谢
|
95
CodeMiao 11 天前
看了黄老师写的《 Redis 设计与实现》学到了很多,虽然 redis 的版本一再更迭,但是黄老师书里写的设计、实现、算法 依然很有参考、学习意义,期待黄老师的新书
|
96
biYhW 11 天前 1
目前在做毕业设计,在设计缓存部分的时候选择了 redis ,没有什么特别的原因,主要是室友推荐的,为此还专门在淘宝上买了一本《 Redis 使用手册》。用了 Redis 之后就相当于在每次做菜,需要用到调料时,你都要跑到远处的超市去买,这样做菜的效率会非常低。如果你有一个调料架,里面摆满了各种常用的调料,这样每次做菜时就能迅速拿到需要的调料,做菜效率大大提高。
以下摘录自我论文的部分内容: 在文件上传和转换等异步操作中,我利用 Redis 的队列功能,将任务放入队列进行处理,避免阻塞主线程,提升了系统的响应效率。为了更好地满足统计需求,Redis 的计数器功能也被用来实时统计文件的下载量和上传次数。这些功能结合起来,让系统在高并发场景下依然能够快速响应用户请求。在使用过程中,我还注意到 Redis 的一些挑战,例如缓存的过期策略和内存使用问题。为此,我设计了合理的过期时间,确保缓存的数据既能高效利用内存,又能及时更新。同时,我还对 Redis 的性能进行了监控,以防止热点数据导致系统瓶颈。 |
97
iv8d 11 天前 via Android
数据库缓存,消息队列,热门活动数据存储库,不想看盗版!!
|
98
mightybruce 11 天前
拿 Redis 来干什么,实现什么功能、做什么应用
----------- 最近尝试运用 redis 做向量数据库, 用来做图片搜索引擎,实现以图搜图的功能 redis 支持 FLAT and HNSW vector index type, 能够满足我一定的需求。 |
99
Leoking222 10 天前
刚参加工作,看到您的书籍,里面内容的深度写的非常好,想拿来学习,公司也负责了关于 redis 的一些业务,
|
100
spediacn 10 天前 via iPhone
公司程序员用 redis 非要不设置密码,关防火墙,端口对外,从客户端调用,为了安全,先禁用 redis 了,等这帮人真正学会 redis 了再加入开发白名单
|