现在有并发的用户请求,每个用户有一个userId,假设一个用户每50ms请求代理服务一次,连续请求10分钟。
代理服务需要转发用户的请求,并为每次请求生成一个seqId,这个是递增的+1
需要的是每次来了请求就使用userId作为key从本地缓存或者reids缓存中读取数据,然后+1,然后再回写到缓存中。这种设计是用本地缓存还是redis合适呢?
现在有并发的用户请求,每个用户有一个userId,假设一个用户每50ms请求代理服务一次,连续请求10分钟。
代理服务需要转发用户的请求,并为每次请求生成一个seqId,这个是递增的+1
需要的是每次来了请求就使用userId作为key从本地缓存或者reids缓存中读取数据,然后+1,然后再回写到缓存中。这种设计是用本地缓存还是redis合适呢?
如果你的应用是单机的,没多台部署,可以使用本地缓存(进程内的缓存)比如ehcache,也可以使用redis缓存。
如果你的应用是多台部署,使用类似redis这样的独立缓存吧(进程外的缓存)。
8 回答6.4k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
2 回答3.2k 阅读
2 回答3.9k 阅读
1 回答2.2k 阅读✓ 已解决
3 回答1.6k 阅读✓ 已解决
java项目本身就有一个分布式缓存项目
apache ignite
,比redis好用多了。如果你需要用到分布式缓存,我强烈推荐这个。既可以独立部署,也可以嵌入项目中运行