我必须创建一个服务,它必须使用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的最佳方法是什么。是否存在可用于解决此问题的现有设计模式?比如更好的缓存方式。
先谢谢