猿问

频繁操作的数据用redis缓存还是自建缓存比较好?

java 项目,要用到两个数据结构
1 {province : set<phonenumber>}
2 {phonenumber: {"username": username, "status": status }}
用的时候大致是时不时插入或者删除电话号码到1的set里(删除要用到定时机制或者超时机制)
或者根据省份查1得到集合set,然后在2里遍历这个电话号码的集合

单项目使用,不用和其他服务共享数据
自建缓存的话要用到hashset hashmap/concurrenthashmap ,还要定时器
redis的话直接用,但是用redis的性能和自建缓存比有明显差别吗?

眼眸繁星
浏览 1341回答 10
10回答

守候你守候我

估算数据量,及数据增长趋势,如果内存能够承受,可以用Map,我试过往Map里放500M的数据,可以承受的 如果用redis,考虑网络IO的延迟 不要过早优化,如果目前内存够用,没必要上第三方缓存,开发的时候采用接口编程,如果以后换了再换实现就行了

GCT1015

1.Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库,redis 的性能当然比自建缓冲的性能好,毕竟 redis 是经过大量实践和改进的,如果项目不上线,另说,你可以尝试下2.缓存(数据查询、短连接、新闻内容、商品内容等等)。(最多使用)

人到中年有点甜

我们用的是apache ignite网络缓存。这套缓存系统好评

摇曳的蔷薇

大型高并发与高可用缓存架构实战

喵喵时光机

Redis 缓存的话需要注意的是网络问题,如果部署在同一台机器就没有这个顾虑了。

隔江千里

1.建议使用redis,这样可以降低耦合度,2.另个redis的缓存处理机制是经过很多成熟产品检验的,其处理的速率及性能都远远超过自建。

HUX布斯

redis 否则 没法水平扩容。除非当存缓存用。

叮当猫咪

如果只考虑性能,自建缓存必然比redis高效。 因为你是单应用,如果内存足够的话自建的内存缓存(例如concurrenthashmap )完全可以满足需求 也可以使用第三方缓存类,例如Google Guava 缓存类(不用你自己写定时器去清除缓存)。 //Google Guava缓存的例子 Cache<String, String> cache = CacheBuilder.newBuilder()// .expireAfterAccess(1000, TimeUnit.MILLISECONDS)// .build(); cache.put("key1", "value"); String value = cache.getIfPresent("key1");

慕标5832272

看规模了。小的话肯定自建了。

一只萌萌小番薯

要是数据量小的话,可以直接使用同步集合(避免数据不一致),因为程序级的内存使用肯定要比通过网络请求的缓存效率高。但是问题是你的程序重启时,你每次都要重新加载数据到内存中,还要自己写定时任务修改数据,对于自己随便写的程序,可以这样做,如果是商业程序,不建议这么做。redis在商业程序或者数据量比较大的时候需要用的。
随时随地看视频慕课网APP

相关分类

Java
我要回答