现在碰到个大数据频繁操作问题,数据量很大,但又得对这大数据量进行频繁的读和写,现在还没有好的方案,哪位大牛能给点思路啊。。
一般对于大数据的读写操作,都会有一个cache层作为缓冲。一般选用cache的话,会用memcached或redis(还有一个阿里的cache)。然后再加上读写分离的策略。只要保证操作不会穿透cache,就没有什么问题。
当然是用cache的话,你要预估你的全部数据量或热数据量。预算好你的cache命中率。
你这里说道你们操作的集合数据,那选用redis就很不错了。redis本身就支持集合的操作。
最后一步就是cache中数据与持久数据的同步问题,这个你也是需要考虑的。
当然你说的你的数据要做汇集工作,这个就不是cache所不具备的功能了。redis支持服务端计算,如果的key设计的合理的话,估计也能解决你的数据汇集问题。
什么样的数据?简单描述一下,有多大
先来个读写分离,存储过程要用起,同步锁改读写锁。重点还是要从数据库方面入手。
优化要一步步来,首先第一步是读写分离。
使用存储过程,个人觉得没有用处,提高不了效率。存储过程适合于非大数据量而业务逻辑复杂的时候可以使用。
需要优化的数据存储结构,去除一些冗余字段
数据量再大,读写再频繁也要有个说法吧。数据量一般有多大?读写的频率大概是多少,每次读写的量有多少,一般是在什么样的时候进行的读写操作?读写发生时,有没有什么特定要求或者条件?
问题最好交代清楚,关键点最好能量化,这样大家才能帮你。
这个不应该是在单线程环境吧,那要注意线程安全了。
大数据处理,hadoop
用memcache缓存服务器
怎样的集合?
频繁读写可以用map,不一定要用list这种啊。
频率是多少,数据量有多大?
短信的数据量很少的~一般用哥concurrentHashMap都可以解决啊~~