返回信息流广告业务的,之前用的数据库是redis,是key-value的,不过由于redis是在内存中读写的,而数据量又很大,现在内存占用已经近一个T了,最近leader让调查下有没有合适的数据库,要求是在硬盘读写的key-value数据库,之前看了下了解到的有个aerospike, 有没有大佬知道还有别的数据库吗,求指点。
这是一条镜像帖。来源:北邮人论坛 / database / #10992同步于 2018/7/15
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Database机器人发帖
求推荐数据库
Zhende
2018/7/15镜像同步9 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
aerospike还可以,不过貌似要买付费版的
【 在 Zhende (Zhende) 的大作中提到: 】
: 广告业务的,之前用的数据库是redis,是key-value的,不过由于redis是在内存中读写的,而数据量又很大,现在内存占用已经近一个T了,最近leader...
: --
我看网上不是有那些安装使用教程吗,不是免费的。。?大佬知道还有别的类似的数据库吗。
【 在 zuilehongdou 的大作中提到: 】
: aerospike还可以,不过貌似要买付费版的
几乎所有数据库都是在内存上修改、写log、定期刷脏的,因为直接改硬盘不仅会有性能问题,而且还会影响事务原子性和一致性
虽然没用过redis,但是所有数据库都会有限制内存使用的配置项,你可以翻一下文档
超过内存使用的,要么会提高刷脏的频率,要么写到虚拟内存里,当然,不论是哪种方式,都会影响读写速度
如果改了配置项之后不能接受,那么建议上分布式
了解,不过我们不是要限制内存,而是在平时数据本身就很大,相比较公司分配的内存,已经占用了较大的内存,因为担心到一些特别的时候比如节日,流量太大,内存可能不够,redis是他的数据也都在内存中,所以想找个是数据放在硬盘比如ssd里的(比如aerpspike),索引应该都是在内存里完成的吧?因为aerospike是leader告诉我的,想让我调查下还有没有别的,,我查了也只看到这个。。。
【 在 Nroskill 的大作中提到: 】
: 几乎所有数据库都是在内存上修改、写log、定期刷脏的,因为直接改硬盘不仅会有性能问题,而且还会影响事务原子性和一致性
: 虽然没用过redis,但是所有数据库都会有限制内存使用的配置项,你可以翻一下文档
: 超过内存使用的,要么会提高刷脏的频率,要么写到虚拟内存里,当然,不论是哪种方式,都会影响读写速度
: ...................
大概你想说的是shadow paging那种模式,这东西性能差得不行,没什么现代数据库会用这东西
限制内存并不是限制数据量,而是限制脏页数量,脏页越多,性能越好,如果脏页多到容纳所有基线数据,那就是纯内存数据库
就算是限制了脏页数量,也比shadow paging要快
【 在 Zhende 的大作中提到: 】
: 了解,不过我们不是要限制内存,而是在平时数据本身就很大,相比较公司分配的内存,已经占用了较大的内存,因为担心到一些特别的时候比如节日,流量太大,内存可能不够,redis是他的数据也都在内存中,所以想找个是数据放在硬盘比如ssd里的(比如aerpspike),索引应该都是在内存里完成的吧?因为aerospike是leader告诉我的,想让我调查下还有没有别的,,我查了也只看到这个。。。
噢,了解,谢谢!不过不确定现在用的redis是不是可以这么做或者对性能影响有多大,我也不太清楚redis的原理,只是他们这么说的。。我再了解下redis的,不过不确定这边是不是跟限制脏页有关,可能基线数据本身就很大,由于业务性能需求而都放在内存里。。
【 在 Nroskill 的大作中提到: 】
: 大概你想说的是shadow paging那种模式,这东西性能差得不行,没什么现代数据库会用这东西
: 限制内存并不是限制数据量,而是限制脏页数量,脏页越多,性能越好,如果脏页多到容纳所有基线数据,那就是纯内存数据库
: 就算是限制了脏页数量,也比shadow paging要快
: ...................
肯定可以做的,具体影响当然要看测试结果,跟业务场景、表设计和代码实现有关
基线数据多大都无所谓,关键是看读写的热数据的范围
【 在 Zhende 的大作中提到: 】
: 噢,了解,谢谢!不过不确定现在用的redis是不是可以这么做或者对性能影响有多大,我也不太清楚redis的原理,只是他们这么说的。。我再了解下redis的,不过不确定这边是不是跟限制脏页有关,可能基线数据本身就很大,由于业务性能需求而都放在内存里。。