Redis vs memcached vs mongo

Redis vs memcached vs mongo


Redis vs memcached:


Redis作为一个高性能的key-value数据库具有以下特征: 
1.多样的数据模型(String、Hash、List、Set和Sorted Set) 
2.持久化-bgsave(使用RDB快照的方式,在发起落地指令时,fork 出一个进程把整个内存 dump 到硬盘上(fork会消耗不少内存和IO);或使用类似MySQL的AOF日志方式,记录每次更新的日志。前者性能较高,但是可能会引起一定程度的数据丢失;后者相反。) 
3.主从同步(对提高读取性能非常有益, 也触发了fork)
4.分布式可拓展性:
4.1 2.8以前的版本:与Memcached一致,可以在客户端实现,也可以使用代理,twitter已开发出用于Redis和Memcached的代理Twemproxy 。
4.2 3.0以后的版本:Redis Cluster是一个实现了分布式且允许单点故障的Redis高级版本,它没有中心节点,各个节点地位一致,具有线性可伸缩的功能。
5. Redis只使用单核,而Memcached可以使用多核
6. Memcached单个key-value大小有限,一个value最大只支持1MB,而Redis最大支持512MB
7. Memcached只是个内存缓存,对可靠性无要求;而Redis更倾向于内存数据库,因此对对可靠性方面要求比较高
8. 冷备机制: 定期把 redis 数据库文件复制一份打包备份。而操作系统在拷贝文件时,似乎利用了大量的内存做文件 cache 而没有及时释放。调整了操作系统的内核参数,关掉了 cache ,暂时解决了问题。


可靠性上:
     MemCached不支持数据持久化,断电或重启后数据消失,但其稳定性是有保证的。Redis支持数据持久化和数据恢复,允许单点故障,但是同时也会付出性能的代价。
     
应用场景:
     Memcached:动态系统中减轻数据库负载,提升性能;做缓存,适合多读少写,大数据量的情况(如人人网大量查询用户信息、好友信息、文章信息等)。
     Redis:适用于对读写效率要求都很高,数据处理业务复杂和对安全性要求较高的系统(如新浪微博的计数和微博发布部分系统,对数据安全性、读写要求都很高)。  
     
mongo
磁盘映射内存数据库
value为document类型, 基于BSON的value序列化
应用场景:
适合多写少读, 例如日志和备份




     
SQL vs NoSQL:
MySQL中, 背包其实跟角色完全没有关系, 只是通过1个角色id映射过去, 人为的割裂了数据的关联性. 还硬生生的整出个概念叫结构化查询让你学
NoSQL中, 只是把数据库当成是存储点, 每个角色的数据是完整的一块. 里面怎么存随你便. 每个角色通过id来查询, 其他都没有了
于是乎, 游戏开发变得异常简单. MySQL角色进门查询4~5次才能搞定要的数据.而NoSQL一口气全查出来, 存盘也无需增量, 直接存盘就可以了




http://blog.codingnow.com/2014/03/mmzb_redis.html
https://github.com/shenzhe/redis-storage
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值