如何以无感知技术为数据添加高效缓存层?
- 内容介绍
- 文章标签
- 相关推荐
本文共计3019个文字,预计阅读时间需要13分钟。
前言+本章节将介绍一个我自写的库,库地址在此,主要作用是提供一个注释,在你方法上使用这个注释,库提供的数据功能会帮助你把数据自动缓存起来,下次再调用这个方法时,只需传入参数即可。
前言本篇文章会介绍一个我自己写的库,库地址在这里,主要作用是提供一个注解,在你方法上使用这个注解,库提供的功能会帮你把数据自动缓存起来,下次再调用这个方法只要入参是一致的则直接会从缓存里面拿数据,不会再执行方法了(方法里面的内容可能是走DB或者PRC)。
写这个库的原因是公司内部有一个类似工具,刚开始并没有Get到它有多大的用处,随着在公司接触更多的业务需求,发现这真的是太香了。并且我对它有一些自己的更多想法,所以打算自己写一个开源出来一方面是可以给自己其他开源项目使用,另外一方面我觉得有相同需求的人还蛮多的,而Github上也没有一个尽善尽美的类似库。
不同量级用户的代码真的是不一样,我在原来公司也做的也是C端的业务,对于缓存运用虽然非常多,但是主要是利用Redis数据结构特点来做一些业务上的实现会更多一些,例如用string来做互斥锁/配置开关/状态记录,用zset来做榜单/实现dmq需求,用list/set/hash来做高性能短时数据库。对于很多DB的数据都是直接查,主要当时的产品用户量非常平稳,拿了融资的那段时间公司有钱,数据库用的非常好,从库也多, 上线不需要压测,随便点点RTT自己觉得过得去就行,所以我觉得偶尔写一下读写redis的代码也没啥用工作量。
但是现在的公司,C端接口都做限流,除了分页数据几乎所有数据都加一层缓存,甚至分页数据的第一页都会做。这就很麻烦,每次都要写一大堆重复代码,从Redis取值,空走就DB/RPC,然后回写Redis。
本文共计3019个文字,预计阅读时间需要13分钟。
前言+本章节将介绍一个我自写的库,库地址在此,主要作用是提供一个注释,在你方法上使用这个注释,库提供的数据功能会帮助你把数据自动缓存起来,下次再调用这个方法时,只需传入参数即可。
前言本篇文章会介绍一个我自己写的库,库地址在这里,主要作用是提供一个注解,在你方法上使用这个注解,库提供的功能会帮你把数据自动缓存起来,下次再调用这个方法只要入参是一致的则直接会从缓存里面拿数据,不会再执行方法了(方法里面的内容可能是走DB或者PRC)。
写这个库的原因是公司内部有一个类似工具,刚开始并没有Get到它有多大的用处,随着在公司接触更多的业务需求,发现这真的是太香了。并且我对它有一些自己的更多想法,所以打算自己写一个开源出来一方面是可以给自己其他开源项目使用,另外一方面我觉得有相同需求的人还蛮多的,而Github上也没有一个尽善尽美的类似库。
不同量级用户的代码真的是不一样,我在原来公司也做的也是C端的业务,对于缓存运用虽然非常多,但是主要是利用Redis数据结构特点来做一些业务上的实现会更多一些,例如用string来做互斥锁/配置开关/状态记录,用zset来做榜单/实现dmq需求,用list/set/hash来做高性能短时数据库。对于很多DB的数据都是直接查,主要当时的产品用户量非常平稳,拿了融资的那段时间公司有钱,数据库用的非常好,从库也多, 上线不需要压测,随便点点RTT自己觉得过得去就行,所以我觉得偶尔写一下读写redis的代码也没啥用工作量。
但是现在的公司,C端接口都做限流,除了分页数据几乎所有数据都加一层缓存,甚至分页数据的第一页都会做。这就很麻烦,每次都要写一大堆重复代码,从Redis取值,空走就DB/RPC,然后回写Redis。

