Redis3.0.0正式版终于来了!最重要的新特性是集群(RedisCluster),它提供了Redis功能的一个子集(例如,不支持多个Database)分布式、容错的实现(最多支持1000个节点)。Salvatore'antirez'Sanfilippo在GoogleGroups中表示,这对Redis来说是一个重要时刻。“我相信今天的Redis3.0.0将在某种程度上彻底改变Redis的面貌。”他强调,人们会意识到Redis是一个全新的东西,自动扩容、容错、高可用都有了很大的提升。在更大规模上承担更关键的任务。(总结一下老大的意思:Redis翻开了历史的新篇章。。。)antirez还透露,内置的集群功能已经运行了很多年。虽然能找到一些耗时的开发,但时不时被其他功能完全淹没。兄弟,现在终于搞定了。他预计需要一到两年的时间,社区才能用好这些功能,积累必要的经验。他还表示,Redis3.0.0实际上标志着一个新阶段和新开发模式的开始。以后,已经开发的大量新功能将不再急于进入稳定版。事实上,Redis3.0.0放弃了很多新功能,回滚到2.8,以保证新稳定版的用户可以立即使用。他在帖子中强调的其他更新包括:新的“嵌入式字符串”对象编码,提高缓存命中率。在某些工作负载(尤其是流水线高负载)下速度明显加快。大大改进了回收密钥的LRU近似算法。AOF重写功能已经完全重新开发,以减少进程最终写入累积缓冲区时由于慢速硬盘而导致的延迟。发布声明中还列出了以下更新(相对于2.8):WAIT命令用于阻止等待将写入传输到指定数量的从站。迁移连接缓存。更快的键migraitons。MIGARTE新选项COPY和REPLACE.CLIENTPAUSE命令:在指定的时间内停止处理客户端请求。BITCOUNT性能改进。CONFIGSET接受不同单位的内存值(例如你可以使用“CONFIGSETmaxmemory1gb”)。Redis日志格??式报告稍微改变了每一行实例的角色(主/从)或者它是否是一个正在保存的子日志。INCR性能改进。Antirez在HackerNews上回答了社区提出的一些问题,非常有价值。译文如下。这是愚人节玩笑吗?不,我们有在4月1日发布的传统。HyperLogLog支持也于去年4月1日发布。而那一次,因为HyperLogLog这个名字太科幻了,很多人都不相信这不是愚人节玩笑。再说了,开源软件,愚人节就怕什么,下载代码看看就知道了。除了Redis还有其他更好的选择吗?(antirez怎么回答这个问题,你要谦虚。仔细听,他回答的很好。)看使用场景,基本上看事实,具体情况具体分析。程序员的功力不就体现在选择合适的技术,然后在不同的情况下进行优化吗。你得考虑数据模型和要解决的问题是否匹配,运维因素,持久化保证,性能(需要多少个节点),可扩展性,是否简单(做完后我会不会一直支持)如此复杂)等还有同学提到了memcached,有人评论说:现在memcached只相当于Redis最简单的功能,只能做缓存用。Redis不仅可以缓存,还可以承担很多存储任务。此外,还提到了HyperDex,但其ACID特性实现Warp是专有产品。有了Cluster,Sentinel就没用了。没那么快,Sentinel还在和Cluster并行开发中。如果在当前的单实例场景下需要HA,它仍然是最好的选择。但是从长远来看(可能是从长远来看),我们会用Cluster来解决Sentinel的使用场景,但是在这之前我们会很早就告诉大家。谁能更详细地告诉我“嵌入式字符串”对象编码是什么以及它针对什么工作负载?我能找到的文档太旧了。这很容易。通常,在Redis中,会有一个包含类型字段的对象结构,以及一个指向实际对象表示的指针。假设类型为REDIS_STRING,则必须有一个指向“sds”字符串的指针(sds是字符串库使用的名称)。现在有了嵌入式字符串,就提供了一个特殊的字符串对象,将对象结构和字符串本身放在一个地方。这使得内存使用效率更高,并且可以极大地改善内存局部性,因此几乎所有使用字符串对象(字符串,或使用字符串对象作为集合值的更大集合对象)的性能都更好。这种特殊的字符串只用于小字符串(工作量中的大多数字符串都不大)。RedisRedis是一个开源的高级键值(key-value)缓存和存储,以高性能着称。它通常也被称为数据结构服务器,因为其中的键可以存储在各种数据结构中,包括字符串、哈希、列表、集合、排序集合、位图和hyperloglog。Redis的出现很大程度上弥补了memcached等KV数据库的不足。它不仅可以用于缓存,在某些场景下还可以用于存储。在很多情况下,它是关系数据库的一个很好的补充。它提供了Python、Ruby、Erlang和PHP客户端,使用起来非常方便。
