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

推荐订阅源

F
Full Disclosure
Recorded Future
Recorded Future
T
Tenable Blog
S
Securelist
C
CERT Recently Published Vulnerability Notes
T
Threatpost
S
Schneier on Security
A
Arctic Wolf
The Hacker News
The Hacker News
C
CXSECURITY Database RSS Feed - CXSecurity.com
Know Your Adversary
Know Your Adversary
P
Privacy International News Feed
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
The Register - Security
The Register - Security
Cisco Talos Blog
Cisco Talos Blog
AWS News Blog
AWS News Blog
K
Kaspersky official blog
T
True Tiger Recordings
T
Threat Research - Cisco Blogs
V
Vulnerabilities – Threatpost
P
Palo Alto Networks Blog
T
The Exploit Database - CXSecurity.com
小众软件
小众软件
B
Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Microsoft Azure Blog
Microsoft Azure Blog
Cyberwarzone
Cyberwarzone
C
Cybersecurity and Infrastructure Security Agency CISA
T
Tor Project blog
Spread Privacy
Spread Privacy
Malwarebytes
Malwarebytes
P
Proofpoint News Feed
F
Fox-IT International blog
F
Fortinet All Blogs
P
Privacy & Cybersecurity Law Blog
G
GRAHAM CLULEY
量子位
Latest news
Latest news
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 叶小钗
Project Zero
Project Zero
T
Tailwind CSS Blog
N
Netflix TechBlog - Medium
Martin Fowler
Martin Fowler
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
I
Intezer
博客园_首页
腾讯CDC
H
Hackread – Cybersecurity News, Data Breaches, AI and More
D
Darknet – Hacking Tools, Hacker News & Cyber Security

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 哨兵模式下,主从延迟问题 想问下大佬 40M 的字符串适合放到 redis 缓存吗? redis 有时取不到值 redis 集群中 执行事务 或者 lua 脚本 涉及到多个 key 时,这些 key 要求在同一个节点还是同一个 slot? redis 7 所有命令都是原子的吗? Redis 是鸡肋吗? Redis 服务挂了,一段时间后又恢复,不会造成缓存与数据库不一致吗? 关于缓存一致性问题,不知道我这个方案是否可行 redis 集群获取不到连接 用 redis 直接替换 app/物联网的 mq 服务器的可行性大吗?怎么对客户端进行限制 redis 怎么裁剪 zset 只保留排名前 100 的数据 缓存失效后先返回再触发更新的场景要怎么处理? 关于 redis 一个小问题(随机性) 求教大佬,线上 redis cluster 中适合使用 redis lua script 吗?以及使用时有什么注意事项? 怎么使用命令批量删除匹配的 key 值? 对 redis 的 zset 做分片的时候怎么选择分片个数 关于消息推送方案的讨论 Redis 的 zset 按 score 排序做分页的时候怎么保证数据不丢失? redis 的 zset 如果打散成多个 zset 的话,如果要分页查询怎么处理呢? 关于社区场景下,用户已读文章不再推荐这种需求实现方案的探讨 一个 abtest 实验中 redis 设计的思考
为什么 MySQL 有缓存,还要使用 Redis?
yodhcn · 2023-10-05 · via Redis

这是一个创建于 964 天前的主题,其中的信息可能已经有所发展或是发生改变。

这是上次面试中,虽然面试官问我的问题,当时给我问迷糊了。
Q:为什么 MySQL 有缓存,还要使用 Redis ?
A:MySQL 以前有缓存,但由于命中率不高,在新版本中已经舍弃掉了。
Q:那 Oracle 数据库呢? Oracle 数据库有缓存吗?
A:不清楚。
Q:不论是 MySQL 还是 Oracle ,只要是数据库就应该都有缓存,那为什么数据库有缓存,还要使用 Redis ?
A: Redis 支持分片集群,缓存容量容易扩展;而 MySQL 是为单机设计的,缓存容量受限于运行 MySQL 的主机内存。

但面试官好像对这个回答不太满意
现在回想起来,虽然当时是我混淆了“MySQL 查询缓存”和“MySQL 的 Buffer Pool”,但是,MySQL 的 Buffer Pool 也起到了缓存作用,减少磁盘 IO 。

为什么 MySQL 有缓存,还要使用 Redis ?
这个问题,目前我只想到从两个角度回答:
1. Redis 支持分片集群,缓存容量容易扩展。
2. 多级缓存。Redis 内存->Buffer Pool->磁盘。
各位还有什么别的看法吗?

stinkytofu

1

stinkytofu      2023 年 10 月 5 日

从自己的角度回答就好了, 我的项目引入 Redis, 那肯定是因为 Redis 速度快, 好用, 这就是最主要的原因!

Maboroshii

2

Maboroshii      2023 年 10 月 5 日 via Android

mysql 缓存不可控吧,你哪知道缓存了啥。

amlee

3

amlee      2023 年 10 月 6 日

mysql 做不了分布式缓存吧?

ration

4

ration      2023 年 10 月 6 日 via Android

1.redis 不止用于缓存 2.如上面所说可控性,还有缓存时间,缓存数据结构,很多方面都可以研究下

Ericcccccccc

5

Ericcccccccc      2023 年 10 月 6 日

如果单从为了获得 key-value 的角度来讲, redis 相比起 mysql 会更便宜.

fredcc

6

fredcc      2023 年 10 月 6 日 via Android   ❤️ 4

The query cache is deprecated as of MySQL 5.7.20, and is removed in MySQL 8.0.
哪怕 MySQL 有缓存,也是基于查询 SQL 的。不能代替业务级别的缓存。比如分布式应用情况下的用户会话缓存,又比如一个结果集是多个 SQL 查询结果经过业务逻辑处理后需要缓存。
不知道面试官对比这两个东西出于什么目的。

Worldispow

7

Worldispow      2023 年 10 月 6 日 via Android   ❤️ 2

为什么用 redis 不用 oracle ?
穷。

wonderfulcxm

8

wonderfulcxm      2023 年 10 月 6 日 via iPhone

@fredcc 为什么后来的 MySQL 要取消 query cache ?我发现 WordPress 官方给的优化建议有一条是开启 query cache ,在多读少写的站点,比如 blog 提速非常明显。

dw2693734d

9

dw2693734d      2023 年 10 月 6 日   ❤️ 1

为什么 MySQL 有缓存,硬盘还有设计缓存,CPU 也要设计缓存?

devopsdogdog

10

devopsdogdog      2023 年 10 月 6 日 via Android

更快的速度这点就够了。还有答的感觉就是刚工作和水瓶吧。

devopsdogdog

11

devopsdogdog      2023 年 10 月 6 日 via Android

补充一下,应该是想让你说 nosql 这类型的数据库区别吧。毕竟是不同类型的数据库

darkengine

12

darkengine      2023 年 10 月 6 日

我要缓存一些不是数据库查询出来的结果, 或者是查出来后经过程序加工过的数据, MySQL query cache 就用不上了.

buffzty

14

buffzty      2023 年 10 月 6 日

一个是硬盘 io,一个是内存 io

murmur

15

murmur      2023 年 10 月 6 日

redis 可以缓存处理好的数据 直接就是和前端拿到的东西八九不离十了 连加工都省掉了

OysterQAQ

16

OysterQAQ      2023 年 10 月 6 日

可控性(包含对其进行操作,以及缓存粒度是方法级别还是对象级别),mysql 的缓存设计上就是面向 sql 尽量无感知的不可控的,缓存位于服务器层,甚至和存储引擎都是分离无关的

iorilu

17

iorilu      2023 年 10 月 6 日   ❤️ 2

两码事把

redis 是主动缓存, 你知道缓存了啥

数据库是自动缓存把, 他按他算法缓存, 但不一定是你要的

ieliwb

18

ieliwb      2023 年 10 月 6 日

2 个东西,一个是关系型数据库,一个是非关系型,使用场景不一样

zjsxwc

19

zjsxwc      2023 年 10 月 6 日

因为 Mysql 的 Query Cache 只能单机单核 CPU 才有效,不方便 scale 分布式,
也因为 proxysql 这个能解决上面 Mysql 缺点的 mysql 中间代理层软件与 oracle 有 py 交易,让 oracle 把 mysql8.0 开始删掉了 Query Cache 功能。

wy315700

20

wy315700      2023 年 10 月 6 日

关于 Oracle 应该这么回答

Oracle 一切都很好,不管是性能还是稳定性,唯一的缺点是:贵

yabo083

21

yabo083      2023 年 10 月 6 日 via Android

复习下八股:mysql 查询缓存的缺点:虽然可以提升查询性能,但是每次查询都要做一次缓存(如果失效的话,而失效的情况还很多),失效还要销毁。而且查询缓存在 8.0 以上版本已经不再支持。redis 优点:高性能,高并发( 1w qps ,mysql ; 10w~30w ,redis 单机+使用缓存)

GeminiPro

22

GeminiPro      2023 年 10 月 6 日

mysql 缓存是有限制的,并不是所有的内容都在内存中,而 redis 所有内容都在内存

aijam

23

aijam      2023 年 10 月 6 日

这不就和 CPU 有缓冲那为什么要有内存差不多道理吗

yinmin

24

yinmin      2023 年 10 月 6 日 via iPhone

最关键点是性能不一样

PTLin

25

PTLin      2023 年 10 月 6 日   ❤️ 2

查询速度不是一个量级的,MySQL 查询起码要进行 SQL 解析,查询计划分析不同索引的查询成本,把页加载到 Buffer 里,生成 ReadView ,B+树页的解析,条目的定位,层层的查询,返回给用户等等操作。
redis ,直接走内存,用的数据结构也都是比较简单的 hashmap ,list ,skiplist 什么的,因为全在内存中,所以不需要使用 B 树这种可以部分读取的结构,速度自然就很快。

Ericcccccccc

26

Ericcccccccc      2023 年 10 月 6 日

想到另外一个问题, 面试官说的缓存很可能是 buffpool, 要是没有这玩意每次都去磁盘里读数据那是慢到姥姥家了. 很多慢查询都是冷数据 buffpool 里没有.

opengps

27

opengps      2023 年 10 月 6 日

MySQL 的缓存,存了索引和临时结果集,并不是彻底的之操作内存

Kumo31

28

Kumo31      2023 年 10 月 6 日

两码事,最根本的区别是他们的设计目的不一样,Redis 就是为内存而设计的,MySQL 等大部分 RDBMS 都是为磁盘设计的,这就导致 MySQL 的数据就算能全量存进内存,这一套查询结构的速度也比面向内存的设计慢的多

tairan2006

29

tairan2006      2023 年 10 月 6 日

MySQL 的数据结构和 Redis 差别很大啊

如果只用 kv ,也可以用 memorycache ,并不一定非要 Redis

而且关系型数据库的 kv ,也不支持过期吧

hefish

31

hefish      2023 年 10 月 6 日   ❤️ 5

这问题就笑笑吧。 为什么厂区养了条狗还要招保安。为什么家里有固定电话,还去买个手机?

nise

33

nise      2023 年 10 月 6 日

从面试官的角度思考一下,应该是考你架构能力,不同的东西有不同的适用场景,这两个就不是一个东西,一个是关系型数据库,一个是 kv 系统,那你就扯一下关系型数据库用来干啥,kv 系统用来干啥。总之不要被他绕进去,思考一下这个问题背后

julyclyde

34

julyclyde      2023 年 10 月 6 日

mysql 现在没有缓存了吗?从哪个版本开始啊
才几年没用,变化这么大啊

seers

35

seers      2023 年 10 月 6 日   ❤️ 1

估计已经没多少人听说过数据库要 warm up buffer pool 了,属于 DBA 的时代眼泪啊

codewld

36

codewld      2023 年 10 月 6 日   ❤️ 1

MySQL 缓存磁盘中的数据页,是对数据的缓存; Redis 缓存查询结果,是对结果的缓存

princeofwales

37

princeofwales      2023 年 10 月 6 日

oracle 的缓存,主要是 sga 里的 buffer cache 和 shared pool ,前者缓存从磁盘获取到的数据,后者缓存解析 sql 的中间值
oracle 的内存数据库,是叫 timesten ,在一个公安的人口登录系统里搞过一次

sleepm

38

sleepm      2023 年 10 月 6 日

看业务需求
比如,统计
mysql 缓存,效率不高,比较写会比较频繁,缓存也没有意义了
redis 的话,随便写随便读

xuanbg

39

xuanbg      2023 年 10 月 7 日

此缓存非彼缓存呀

bianhui

40

bianhui      2023 年 10 月 7 日

浏览器还有缓存,王者荣耀还有缓存了,为啥还用 redis 。两个压根不是一回事吧,不是说名字一样,描述的就是一种东西。

8355

41

8355      2023 年 10 月 7 日

其实面试官想听到的是为什么不使用 mysql 缓存。。。。
mysql 缓存在数据变更后缓存失效,包括表结构变更,索引变更和数据变更。

zzzmh

42

zzzmh      2023 年 10 月 7 日

要是我我就回答 因为别人都在用 我凑热闹

xiang0818

43

xiang0818      2023 年 10 月 7 日

MySQL 有查询缓存功能可以缓存查询结果以提高查询性能,但是查询缓存有一些限制,例如缓存失效的开销、缓存命中率低等。此外,MySQL 的查询缓存功能在 MySQL 8.0 版本中已被弃用并在后续版本中被删除。

相比之下,Redis 是一个内存数据存储,它提供了更高级的功能和更高的可伸缩性和高可用性。
1 、Redis 支持不同类型的数据缓存,例如键值对、列表、哈希表、集合等。
2 、Redis 还支持分布式缓存,可以在多个节点上进行缓存,提高了可伸缩性和高可用性。

因此,虽然 MySQL 的缓存功能可以提高查询性能,但它的局限性较大。为了提高应用程序的性能和可伸缩性,使用 Redis 作为缓存存储通常是更好的选择,即使 MySQL 有缓存功能。

gav1nvv

44

gav1nvv      2023 年 10 月 7 日   ❤️ 2

Redis 和数据库的场景完全不同,并发量也完全不在一个量级,通常 Redis 会做集群用于,登陆 token 存储,临时数据存储,防止数据库穿透等用途,假如用关系数据库也可以实现,但是结构复杂,效率低下,一旦发生变更缓存失效(因为经常修改的话相当于没缓存)。面试官想问你的其实是关系型数据库和 key-value 数据库的区别和用途

Pantheoon

45

Pantheoon      2023 年 10 月 7 日

redis 可以缓存聚合的结果,是人为可控的,你想塞啥塞啥,mysql 的缓存更多的是它的查询优化,这个东西可控性比较低,而且它的逻辑只有它自己知道

xiaoyureed

46

xiaoyureed      2023 年 11 月 10 日

这个好回答呀, redis 缓存一般工作在业务层, 缓存的都是经过聚合/计算后的数据, 和数据库自己的缓存可差远了