{"id":7646,"date":"2016-06-08T11:12:22","date_gmt":"2016-06-08T03:12:22","guid":{"rendered":"https:\/\/aqzt.com\/7646.html"},"modified":"2016-06-08T11:12:22","modified_gmt":"2016-06-08T03:12:22","slug":"lettuce-4-2-0-%e5%8f%91%e5%b8%83%ef%bc%8c%e5%ae%89%e5%85%a8%e7%9a%84-redis-%e5%ae%a2%e6%88%b7%e7%ab%af","status":"publish","type":"post","link":"https:\/\/aqzt.com\/7646.html","title":{"rendered":"Lettuce 4.2.0 \u53d1\u5e03\uff0c\u5b89\u5168\u7684 Redis \u5ba2\u6237\u7aef"},"content":{"rendered":"<p><a href=\"https:\/\/www.oschina.net\/\" target=\"_blank\" rel=\"noopener noreferrer\">\u6587\u7ae0\u8f6c\u8f7d\u5f00\u6e90\u4e2d\u56fd<\/a><\/p>\n<p>Lettuce 4.2.0 \u6b63\u5f0f\u53d1\u5e03\u4e86\uff0cLettuce\u662f\u4e00\u4e2a\u53ef\u4f38\u7f29\u7ebf\u7a0b\u5b89\u5168\u7684<a href=\"http:\/\/www.oschina.net\/p\/redis\">Redis<\/a>\u5ba2\u6237\u7aef\u3002\u591a\u4e2a\u7ebf\u7a0b\u53ef\u4ee5\u5171\u4eab\u540c\u4e00\u4e2aRedisConnection\u3002\u5b83\u5229\u7528\u4f18\u79c0<a href=\"http:\/\/www.oschina.net\/p\/netty\">netty<\/a> NIO\u6846\u67b6\u6765\u9ad8\u6548\u5730\u7ba1\u7406\u591a\u4e2a\u8fde\u63a5\u3002<\/p>\n<p>\u4e00\u4e9b\u589e\u5f3a\uff1a<\/p>\n<ul class=\" list-paddingleft-2\">\n<li>\n<p>Cluster pub\/sub and resilient subscriptions <a href=\"https:\/\/github.com\/mp911de\/lettuce\/issues\/138\" class=\"issue-link js-issue-link\" data-url=\"https:\/\/github.com\/mp911de\/lettuce\/issues\/138\" data-id=\"108152507\" data-error-text=\"Failed to load issue title\" data-permission-text=\"Issue title is private\">#138<\/a> (Thanks to <a href=\"https:\/\/github.com\/jpennell\" class=\"user-mention\">@jpennell<\/a>)<\/p>\n<\/li>\n<li>\n<p>Reactive API: Emit items during command processing <a href=\"https:\/\/github.com\/mp911de\/lettuce\/issues\/178\" class=\"issue-link js-issue-link\" data-url=\"https:\/\/github.com\/mp911de\/lettuce\/issues\/178\" data-id=\"127120276\" data-error-text=\"Failed to load issue title\" data-permission-text=\"Issue title is private\">#178<\/a><\/p>\n<\/li>\n<li>\n<p>Allow configuration of max redirect count for cluster connections <a href=\"https:\/\/github.com\/mp911de\/lettuce\/issues\/191\" class=\"issue-link js-issue-link\" data-url=\"https:\/\/github.com\/mp911de\/lettuce\/issues\/191\" data-id=\"131346510\" data-error-text=\"Failed to load issue title\" data-permission-text=\"Issue title is private\">#191<\/a><\/p>\n<\/li>\n<li>\n<p>Improve SCAN API <a href=\"https:\/\/github.com\/mp911de\/lettuce\/issues\/208\" class=\"issue-link js-issue-link\" data-url=\"https:\/\/github.com\/mp911de\/lettuce\/issues\/208\" data-id=\"137676225\" data-error-text=\"Failed to load issue title\" data-permission-text=\"Issue title is private\">#208<\/a><\/p>\n<\/li>\n<li>\n<p>Support Redis Cluster with SSL <a href=\"https:\/\/github.com\/mp911de\/lettuce\/issues\/209\" class=\"issue-link js-issue-link\" data-url=\"https:\/\/github.com\/mp911de\/lettuce\/issues\/209\" data-id=\"137688070\" data-error-text=\"Failed to load issue title\" data-permission-text=\"Issue title is private\">#209<\/a><\/p>\n<\/li>\n<li>\n<p>Improve CommandHandler locking <a href=\"https:\/\/github.com\/mp911de\/lettuce\/issues\/211\" class=\"issue-link js-issue-link\" data-url=\"https:\/\/github.com\/mp911de\/lettuce\/issues\/211\" data-id=\"140308799\" data-error-text=\"Failed to load issue title\" data-permission-text=\"Issue title is private\">#211<\/a><\/p>\n<\/li>\n<li>\n<p>Improve command encoding of singular commands and command batches <a href=\"https:\/\/github.com\/mp911de\/lettuce\/issues\/212\" class=\"issue-link js-issue-link\" data-url=\"https:\/\/github.com\/mp911de\/lettuce\/issues\/212\" data-id=\"141112760\" data-error-text=\"Failed to load issue title\" data-permission-text=\"Issue title is private\">#212<\/a> (Thanks to <a href=\"https:\/\/github.com\/cwolfinger\" class=\"user-mention\">@cwolfinger<\/a>)<\/p>\n<\/li>\n<li>\n<p>Add log statement for resolved address <a href=\"https:\/\/github.com\/mp911de\/lettuce\/pull\/218\" class=\"issue-link js-issue-link\" data-url=\"https:\/\/github.com\/mp911de\/lettuce\/issues\/218\" data-id=\"145637633\" data-error-text=\"Failed to load issue title\" data-permission-text=\"Issue title is private\">#218<\/a> (Thanks to <a href=\"https:\/\/github.com\/mzapletal\" class=\"user-mention\">@mzapletal<\/a>)<\/p>\n<\/li>\n<li>\n<p>Apply configured password\/database number in MasterSlave connection <a href=\"https:\/\/github.com\/mp911de\/lettuce\/issues\/220\" class=\"issue-link js-issue-link\" data-url=\"https:\/\/github.com\/mp911de\/lettuce\/issues\/220\" data-id=\"145901248\" data-error-text=\"Failed to load issue title\" data-permission-text=\"Issue title is private\">#220<\/a><\/p>\n<\/li>\n<li>\n<p>Improve command draining in flushCommands <a href=\"https:\/\/github.com\/mp911de\/lettuce\/issues\/228\" class=\"issue-link js-issue-link\" data-url=\"https:\/\/github.com\/mp911de\/lettuce\/issues\/228\" data-id=\"150330375\" data-error-text=\"Failed to load issue title\" data-permission-text=\"Issue title is private\">#228<\/a> (Thanks to <a href=\"https:\/\/github.com\/CodingFabian\" class=\"user-mention\">@CodingFabian<\/a>)<\/p>\n<\/li>\n<li>\n<p>Support dynamic master\/slave connections <a href=\"https:\/\/github.com\/mp911de\/lettuce\/issues\/233\" class=\"issue-link js-issue-link\" data-url=\"https:\/\/github.com\/mp911de\/lettuce\/issues\/233\" data-id=\"153305022\" data-error-text=\"Failed to load issue title\" data-permission-text=\"Issue title is private\">#233<\/a><\/p>\n<\/li>\n<li>\n<p>Expose DNS Resolver <a href=\"https:\/\/github.com\/mp911de\/lettuce\/issues\/236\" class=\"issue-link js-issue-link\" data-url=\"https:\/\/github.com\/mp911de\/lettuce\/issues\/236\" data-id=\"153550423\" data-error-text=\"Failed to load issue title\" data-permission-text=\"Issue title is private\">#236<\/a><\/p>\n<\/li>\n<li>\n<p>Make latencyutils and commons-pool2 dependencies optional <a href=\"https:\/\/github.com\/mp911de\/lettuce\/issues\/237\" class=\"issue-link js-issue-link\" data-url=\"https:\/\/github.com\/mp911de\/lettuce\/issues\/237\" data-id=\"153599778\" data-error-text=\"Failed to load issue title\" data-permission-text=\"Issue title is private\">#237<\/a><\/p>\n<\/li>\n<li>\n<p>Support adaptive cluster topology refreshing and static refresh sources <a href=\"https:\/\/github.com\/mp911de\/lettuce\/issues\/240\" class=\"issue-link js-issue-link\" data-url=\"https:\/\/github.com\/mp911de\/lettuce\/issues\/240\" data-id=\"154463540\" data-error-text=\"Failed to load issue title\" data-permission-text=\"Issue title is private\">#240<\/a> (Thanks to <a href=\"https:\/\/github.com\/RahulBabbar\" class=\"user-mention\">@RahulBabbar<\/a>)<\/p>\n<\/li>\n<li>\n<p>Add static builder() methods to builders enhancement <a href=\"https:\/\/github.com\/mp911de\/lettuce\/issues\/248\" class=\"issue-link js-issue-link\" data-url=\"https:\/\/github.com\/mp911de\/lettuce\/issues\/248\" data-id=\"157302546\" data-error-text=\"Failed to load issue title\" data-permission-text=\"Issue title is private\">#248<\/a><\/p>\n<\/li>\n<li>\n<p>Add factory for reconnection delay enhancement <a href=\"https:\/\/github.com\/mp911de\/lettuce\/issues\/250\" class=\"issue-link js-issue-link\" data-url=\"https:\/\/github.com\/mp911de\/lettuce\/issues\/250\" data-id=\"157304651\" data-error-text=\"Failed to load issue title\" data-permission-text=\"Issue title is private\">#250<\/a><\/p>\n<\/li>\n<li>\n<p>Add integer cache for CommandArgs enhancement <a title=\"Add integer cache for CommandArgs\" href=\"https:\/\/github.com\/mp911de\/lettuce\/issues\/251\" class=\"issue-link js-issue-link\" data-id=\"157353776\" data-error-text=\"Failed to load issue title\" data-permission-text=\"Issue title is private\">#251<\/a><\/p>\n<\/li>\n<\/ul>\n<p>\u5b8c\u6574<a target=\"_blank\" href=\"https:\/\/github.com\/mp911de\/lettuce\/releases\/tag\/4.2.0.Final\" rel=\"noopener noreferrer\">\u53d1\u5e03\u8bf4\u660e<\/a>\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u6587\u7ae0\u8f6c\u8f7d\u5f00\u6e90\u4e2d\u56fd Lettuce 4.2.0 \u6b63\u5f0f\u53d1\u5e03\u4e86\uff0cLettuce\u662f\u4e00\u4e2a\u53ef\u4f38\u7f29\u7ebf\u7a0b\u5b89\u5168\u7684Redis\u5ba2\u6237\u7aef\u3002\u591a\u4e2a\u7ebf\u7a0b\u53ef\u4ee5\u5171\u4eab\u540c\u4e00\u4e2aRedisConnection\u3002\u5b83\u5229\u7528\u4f18\u79c0netty NIO\u6846\u67b6\u6765\u9ad8\u6548\u5730\u7ba1\u7406\u591a\u4e2a\u8fde\u63a5\u3002 \u4e00\u4e9b\u589e\u5f3a\uff1a Cluster pub\/sub and resilient subscriptions #138 (Thanks to @jpennell) Reactive API: Emit items during command processing #178 Allow configurat<\/p>\n","protected":false},"author":1,"featured_media":6522,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"footnotes":""},"categories":[2],"tags":[292,9],"collection":[],"_links":{"self":[{"href":"https:\/\/aqzt.com\/wp-json\/wp\/v2\/posts\/7646"}],"collection":[{"href":"https:\/\/aqzt.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/aqzt.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/aqzt.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/aqzt.com\/wp-json\/wp\/v2\/comments?post=7646"}],"version-history":[{"count":0,"href":"https:\/\/aqzt.com\/wp-json\/wp\/v2\/posts\/7646\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/aqzt.com\/wp-json\/wp\/v2\/media\/6522"}],"wp:attachment":[{"href":"https:\/\/aqzt.com\/wp-json\/wp\/v2\/media?parent=7646"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aqzt.com\/wp-json\/wp\/v2\/categories?post=7646"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aqzt.com\/wp-json\/wp\/v2\/tags?post=7646"},{"taxonomy":"collection","embeddable":true,"href":"https:\/\/aqzt.com\/wp-json\/wp\/v2\/collection?post=7646"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}