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

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,以保证新的稳定版本用户能够马上使用。

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

  1. 新的"embedded string"对象编码,提升缓存命中率。在某些工作负载(尤其是管道化的高负载)下速度大幅提高。

  2. 大大改进了回收键的LRU近似算法。

  3. AOF重写功能被完全重新开发了,以减少进程最终将积累的缓冲写入时,由于硬盘速度慢而导致的延迟。

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

  5. WAIT command to block waiting for a write to be transmitted to the specified number of slaves.

  6. MIGRATE connection caching. Much faster keys migraitons.

  7. MIGARTE new options COPY and REPLACE.

  8. CLIENT PAUSE command: stop processing client requests for a specified amount of time.

  9. BITCOUNT performance improvements.

  10. CONFIG SET accepts memory values in different units (for example you can use "CONFIG SET maxmemory 1gb").

  11. Redis log format slightly changed reporting in each line the role of the instance (master/slave) or if it's a saving child log.

  12. 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客户端,使用非常方
便。

原文链接:http://www.lupaworld.com/portal.php?mod=view&aid=251638

原创文章,作者:追马,如若转载,请注明出处:http://www.178linux.com/2399

(0)
追马追马
上一篇 2015-04-03 00:37
下一篇 2015-04-03 09:05

相关推荐

  • KeepAlived高可用集群详解及拓扑实验搭建配置

    Linux Cluster:KeepAlive 1.集群类型:LB(负载均衡集群),HA(高可用集群),HP(高性能集群)     LB:均衡负载的实现LVS     HA:高可用的实现KeepAlived 2.RS:健康状态检测方式: (1)网络层:icmp ping (2)传…

    Linux干货 2016-11-01
  • 第三周作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。       首先用who命令列出当前系统上所有登陆用户,然后使用cut命令以空格为分隔符取出第一列,再使用sort排序并去除重复的行        …

    Linux干货 2017-01-18
  • Linux中find常见用法示例

    ·find   path   -option   [   -print ]   [ -exec   -ok   command ]   {} \; find命令的参数; pathname: find命…

    Linux干货 2017-04-18
  • Linux系统压缩和解压缩工具gzip、bzip2、xz以及tar打包工具总结

    在Linux系统使用过程中,对于一些不是常用的文件,利用cpu的时间资源对文件进行压缩可以节省一定的磁盘空间,对系统中某个目录经常会有备份的需求,可以使用Linux系统中的tar打包工具实现,文件的压缩对于大量的网络文件传输可以节约带宽,同时也能降低服务器的负载,我们经常需要从网站下载软件包到本地主机,这些包基本都是打包压缩的,要想使用安装,需要我们解压缩他…

    Linux干货 2016-08-18
  • PHP中引用的详解(引用计数、写时拷贝)

    《PHP5中文手册》内容中"引用的解释"一文的摘要: 1. PHP中引用的特性 PHP中引用意味着用不同的名字访问同一个变量内容,引用不是C的指针(C语言中的指针里面存储的是变量的内容,在内存中存放的地址),是变量的另外一个别名或者映射。注意在 PHP 中,变量名和变量内容是不一样的,因此同样的内容可以有不同的名字。最接近的比喻是 Uni…

    Linux干货 2015-04-10
  • 高级文件系统之逻辑卷和btrfs文件系统

    逻辑卷管理器快照 逻辑卷可以实现对分区的动态的扩展,快照可以看成是特殊的逻辑卷,它是在生成快照是存在的逻辑卷的准确拷贝。 快照只有在它们和原来的逻辑卷不同时才会消耗空间:     在生成快照时会分配给他一定的空间,但只有在原来的逻辑卷或者快照有所改变时才会使用这些空间     当…

    Linux干货 2016-09-02

评论列表(1条)

  • stanley
    stanley 2015-04-03 10:40

    终于有集群大招了 ~普大喜奔