Redis v3.2.2发布,一个高性能的key-value数据库
jopen 8年前
<p style="text-align: center;"><img alt="" src="https://simg.open-open.com/show/a1a47605a304bd00786b00968d569924.png" /></p> <p>Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。</p> <p>特点:</p> <ul> <li>Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。</li> <li>Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。</li> <li>Redis支持数据的备份,即master-slave模式的数据备份。</li> </ul> <p>优势:</p> <ul> <li>性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。</li> <li>丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。</li> <li>原子 – Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。</li> <li>丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。</li> </ul> <h2>更新日志</h2> <p><strong>Bug修复</strong><br /> 1. There was a bug in the List type implementation, able to cause the<br /> crash of the server under certain (non trivial to replicate) circumstances<br /> when the LSET command was used. Now the bug is fixed and a new stress tester<br /> that was able to easily trigger the bug was added to the test suite.</p> <p>2. Redis Sentinel, when monitoring multiple masters, could crash after<br /> a Sentinel address update event.</p> <p>3. Redis Sentinel now checks slaves INFO state more often when disconnected.<br /> This is not really a bug fix, but may allow to more easily detect that<br /> a slave is able to fail over its master reducing certain delays.</p> <p>4. It was possible, under a variety of conditions, that the AOF and RDB children<br /> process could spawn at the same time. This is known to trash disk I/O,<br /> AOF performances, and to ultimately create latency in the Redis server.<br /> Normally Redis avoids to have the two writing children at the same time, but<br /> there were edge cases discovered by Oran Agra (that also co-authored the<br /> fix with me) where the double-fork could happen. In order to fix this bug<br /> non trivial changes to the replication code were operated, however it was<br /> important to back port this fix into 3.2.2 because the bug could lead to<br /> bad latency experiences in certain cases.</p> <p>5. Many GEORADIUS bugs are now fixed \o/. This started as a failing CI<br /> test. I grepped for more clues and there were a number of random failures<br /> in the points reported by GEORADIUS. The errors were found to be related<br /> to three different bugs (one of these was a bug in the test itself).<br /> It's not a critical bug: the effect is to, sometimes, don't report objects<br /> that are near the radius, but only with specific sets of coordinates<br /> and radius settings. However now the issues are fixed and the error<br /> vectors were added as regression tests.<br /> </p> <p><strong>新功能</strong><br /> 1. Now slaves support the slave-announce-ip and slave-announce-port options.<br /> Using these features a slave can be reported by the master `INFO` output<br /> and `ROLE` command as having arbitrary IP and port. This allows to have<br /> Sentinel deployments when working with containers or NAT-ed environments<br /> more easily.</p> <p>2. The RDB check utlity is now part of Redis and uses the same RDB code that<br /> Redis uses in order to load the dataset in memory, so a given version<br /> of Redis is always able to check the RDB it produced... without another<br /> external check tool which is supposed to be taken in sync with the<br /> rdb.c implementation. This in turn also means that the new RDB checking<br /> is able to spot more complex bugs, since it really loads the dataset<br /> instead of just skipping bytes.</p> <p>更多日志:<a href="/misc/goto?guid=4958992619194896377">3.2/00-RELEASENOTES</a></p> <h2>下载</h2> <ul> <li><a href="/misc/goto?guid=4958992619307013147" rel="nofollow"><strong>Source code</strong> (zip)</a></li> <li><a href="/misc/goto?guid=4958992619420374497" rel="nofollow"><strong>Source code</strong> (tar.gz)</a></li> <li><a href="/misc/goto?guid=4958992619537128420">redis-3.2.2.tar.gz</a></li> </ul>