登录
首页 >  Golang >  Go问答

对MySQL中的每个表设置TTL和缓存大小限制,使用Redis作为缓存存储

来源:stackoverflow

时间:2024-03-22 21:39:30 266浏览 收藏

为了提升数据库性能,本文探讨了如何使用 Redis 作为缓存存储,为 MySQL 中的每个表设置 TTL(生存时间)和缓存大小限制。该方法旨在通过利用 Redis 的 TTL 命令自动从缓存中删除过期密钥,从而减少应用层管理密钥过期开销。

问题内容

我想将 mysql 表(键:id,值:序列化字节中的行)缓存到 redis 中。缓存必须支持每个表的 TTL 和大小限制(以字节为单位)。

例如:表user可以使用100MB缓存,表device可以使用100MB缓存。

我尝试在应用层实现 TTL 和大小限制,但管理和监控密钥过期的开销太大。

有人知道已经做到这一点的想法或开源吗?


解决方案


我不能说 go,但是 基本上,redis 有一个 ttl 命令,可以让您自动从缓存中删除键值。以最简单的形式,您可以:

redis> SET table1:id1 "Hello"
"OK"
redis> EXPIRE table1:id1 10 // remove the line after 10 seconds
(integer) 1
redis> TTL table1:id1  // if you want to query
10

到这里,我们也就讲完了《对MySQL中的每个表设置TTL和缓存大小限制,使用Redis作为缓存存储》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>