设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 开源资讯 查看内容

Redis 3.0.0正式版发布,全新的分布式高可用数据库

2015-4-2 21:44| 发布者: joejoe0332| 查看: 2823| 评论: 0|原作者: CSDN|来自: CSDN

摘要: Redis 3.0.0 正式版终于到来了!最重要的新特性是集群(Redis Cluster),提供Redis功能子集(比如不支持多数据库)的分布式、容错的实现(最多支持1000结点)。Salvatore 'antirez' Sanfilippo在Google Groups里表 ...
  Redis 3.0.0 正式版终于到来了!最重要的新特性是集群(Redis Cluster),提供Redis功能子集(比如不支持多数据库)的分布式、容错的实现(最多支持1000结点)。

data/attachment/portal/201504/02/214413pwwqlzzmf2phf4xc.png



  Salvatore 'antirez' Sanfilippo在Google Groups里表示,这是Redis的重要时刻。“我相信今天的Redis 3.0.0将以某种方式完全改变Redis的面貌。”他强调,人们将认识到Redis是一个全新的东西,它的自动扩展、容错和高可用性都大大提高,从此能够在更大范围承担更关键的任务。(我总结一下老大的意思吧:Redis翻开了历史新的篇章……)


  antirez还透露,内置的集群功能持续干了很多年,虽然能找到一些时间密集开发,但也不时被其他特性完全打断,现在终于完成了。他预计社区能用好这些功能,积累必要的经验,还要一到两年。


  他还说,Redis 3.0.0实际上标志着一个新阶段和新的开发模式的开始。以后,大量已经开发的新功能将不再急于进入稳定版本,实际上Redis 3.0.0就放弃了很多新功能,回退到2.8,以保证新的稳定版本用户能够马上使用。


  他在帖子里重点提及的其他更新包括:

  • 新的"embedded string"对象编码,提升缓存命中率。在某些工作负载(尤其是管道化的高负载)下速度大幅提高。
  • 大大改进了回收键的LRU近似算法。
  • AOF重写功能被完全重新开发了,以减少进程最终将积累的缓冲写入时,由于硬盘速度慢而导致的延迟。


  而在发布声明中还列出了如下更新(相对于2.8):

  • WAIT command to block waiting for a write to be transmitted to the specified number of slaves.
  • MIGRATE connection caching. Much faster keys migraitons.
  • MIGARTE new options COPY and REPLACE.
  • CLIENT PAUSE command: stop processing client requests for a specified amount of time.
  • BITCOUNT performance improvements.
  • CONFIG SET accepts memory values in different units (for example you can use "CONFIG SET maxmemory 1gb").
  • Redis log format slightly changed reporting in each line the role of the instance (master/slave) or if it's a saving child log.
  • INCR performance improvements.


  详情可以点击 这里 查看。


  ITEye上powersoft同学之前翻译了Redis 3.0的文档,虽然还没有来得及更新,但还是有参考价值的:http://www.iteye.com/blogs/subjects/redis3


  Hacker News上antirez回答了社区提出的一些问题,颇有价值,整理翻译如下。


这是不是愚人节笑话啊?

  非也,我们一向有在4月1日发布的传统。去年HyperLogLog支持也是4月1日发布的嘛。而且那次因为HyperLogLog名字太科幻,好多人怎么都不肯相信这居然不是愚人节笑话呢。

  再说,开源软件嘛,怕什么愚人节,你下载代码看看不就啥都知道了。


Redis之外还有什么其他更好的选择啊?

  (这问题让antirez怎么答,总不能不谦虚吧。仔细听,他回答得很好。)这得看使用场景,基本上还是就事论事、具体情况具体分析。程序员的本事不就体现在选择正确的技术,然后在不同情况下优化嘛。你要考虑数据模型是否匹配所要解决的问题,运维因素,持久化保证,性能(需要多少个结点),可扩展性,是否简单(搞这么复杂以后会不会老要我来支持啊),等等。


  其他同学提到了memcached,有人评论:现在memcached已经只相当于Redis最简单的功能了,只能作为缓存。Redis不仅能缓存,还能承担很多存储任务。此外还有人提及HyperDex,但其ACID特性实现Warp是专有的产品。


  此前的这个大型NoSQL比较文章,仍然有一定参考价值:http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis


有了Cluster,Sentinel是不是就废啦。

  还没那么快,Sentinel还在与Cluster并行继续开发中。目前单实例场景下需要HA的话,它还是最佳选择。但长远(可能很长远哦)看,我们会用Cluster解决Sentinel的使用场景,不过在那之前我们会很早就告诉大家的。


谁能给我更详细地讲讲"embedded string"对象编码是啥,它针对什么工作负荷?能找到的文档都太老了。

  这事儿简单。一般Redis里会有包含类型字段的对象结构,还有一个指针指向实际的对象表示。假设类型是REDIS_STRING,就得有指针指向一个"sds"字符串(sds是字符串库用的名字)。


  现在有了embedded string之后,就提供了一种特殊的字符串对象,用一个位置保持对象结构和字符串本身。这样内存利用更有效,而且能够大大改进内存本地性,所以差不多所有使用字符串对象的东西(字符串,或者比较大的要用字符串对象作为集合值的集合对象)性能都更好。


  这种特殊字符串只用于小字符串(工作负荷里大多数字符串都不大)。


Redis

  Redis是一个开源的高级key-value(键-值)缓存与存储,以高性能著称。它也常被称为数据结构服务器,因为其中的键可以存各种数据结构包括字符串、散列、列表、集合、有序集合、位图和hyperloglog。Redis的出现,很大程度补偿了memcached这类KV数据库的不足。不仅可以用于缓存,也可以用于一些场景的存储,在很多情况下是关系数据库很好的补充。它提供了Python,Ruby,Erlang,PHP客户端,使用非常方便。


酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部