设计模式以减少数据库读取

时间:2018-03-05 15:43:54

标签: design-patterns system-design

我必须创建一个服务,它必须使用api void register(String userId)持久化针对userId的标志,并且该服务还必须提供api boolean isRegistered(String userId),该api isRegistered()表示UserID是否已注册服务与否..我打算将No-SQL数据库作为后端,因为读取和写入都是O(1)我不想更改数据库存储,因为它是由不同的服务提供的。

create api的每秒预期请求数为:10(每秒10次写入db)

isRegistered api的每秒预期请求数为:10000(每秒10000次读取到db)。这意味着对于超过95%的请求,此API将返回false,而isIgistered的userId主要是不同的值,因此缓存需要更多的ttl来获得它的好处。

现在我正在尝试优化s = pd.Series(["08-10-2017", "08-10-2017", "08-10-2017", "09-10-2017", "09-10-2017", "09-10-2017", "10-10-2017", "10-10-2017", "10-10-2017", "11-10-2017", "11-10-2017", "11-10-2017", "12-10-2017", "12-10-2017", "12-10-2017", "13-10-2017", "13-10-2017", "13-10-2017", "14-10-2017", "14-10-2017"]) p = pd.DataFrame(data=s) p.columns = ['date'] p.groupby('date').agg('count').reset_index().columns 调用所做的数据库读取次数,因为此api返回的大多数值都是假的(95%的时间)。

设计此System / DB的最佳方法是什么。是否存在可用于解决此问题的现有设计模式?比如更好的缓存方式。

先谢谢

0 个答案:

没有答案