Redisć®ćµćć¼ććåé¤ććå “åćRabbitMQćć¾ććÆććććKafka / nsqć«ęéćéäøćććććØćć§ćć¾ćć
Python3ć§asyncioć«ē§»ę¤ćććØćć大ććŖćæć¹ćÆćććć¾ćć
ćććÆēå£ć«ę¤čØćććć¹ćć ćØęćć¾ćć ē§ćć”ćę„½ććæć®ććć«ććć«åćēµćć®ć§ććć°ćč¼øéę©é¢ć®äŗŗę°ćÆéč¦ć§ćÆććć¾ććć
ēµå±ćē§ćÆćØć«ććåćēµćč½åććććć®ćéøć³ć¾ćććå°ćŖććØćććŖććÆććć§ććŖćć®ęøåæµćč”ØęććććØćć§ćć¾ćć
ē¾åØćć»ććŖć®ä»£ęæåćååØćć¾ććććØćć°ć huey
ćrq
ćććć¼ć«ć¼ćØćć¦ć®redisć®ćµćć¼ćć«ęē¤ŗēć«ē¦ē¹ćå½ć¦ć¦ćć¾ćć ć»ććŖććŖćŖć¼ć¹ććććØććä½ćććć¾ććć§ććć
@ask SQLććć¼ć«ć¼ć®ćµćć¼ćć
ć¾ććdockerćććć¾ćććććÆćrabbitmqć®ćććć¤ćęåéć1ć¤ć®ć³ćć³ćć§ęøćććØćęå³ćć¾ćć ććé£ććććØć§ćÆććć¾ććć
RabbitMQ / Redis / SQS / Qpid仄å¤ć®ä»ć®ćć¹ć¦ć®ććć¼ć«ć¼ćå«ććććć¼ć«ć¼ćØćć¦ć®SQLć®ćµćć¼ććēµäŗćć¾ćć:)
ļ¼č¤č£½ļ¼
ē§ćÆć»ććŖć³ćć„ććć£ć«ććć»ć©ēøććć¦ćć¾ććć ē§ć®0.02ćć«ć«é¢äæćŖćļ¼
ć”ć³ććć³ć¹ć®åé”ć«ć¤ćć¦ć®ććŖćć®ę°ęć”ć«å ±ęććććØćć§ćć¾ććććć¦ćć®ēØ®ć®č”åćÆęē¶åÆč½ę§ćøć®äøę©ć§ćć ććććććŖććä½ćććØćć§ććä»ć®ćåęććÆććć¾ććļ¼
ę¹ēØå¼ć®ćä¾ēµ¦ćå“ć§ćć³ćć„ććć£ććć®ć»ććŖćøć®č²¢ē®ććć仄äøćŖćēē±ć«ć¤ćć¦ä½ćčććććć¾ććļ¼
ć³ććććØPRććć£ćØč¦ć¦ćæććØćē§ćč²¢ē®ćć¦ććććć¤ćć®ćŖć¼ćć³ć½ć¼ć¹ć©ć¤ćć©ćŖćØęÆč¼ćć¦ćć»ććŖćÆäø»ć«1äŗŗć®ä½ę„ć§ććććØććććć¾ćć
@MaximilianRčŖåć®ććć ćć«č©±ćļ¼
ćØćÆćććē§ćÆć»ććŖćä½æć£ć¦ććć®ć§ćå½¹ć«ē«ć¤ę¹ę³ćććć°åćć§ćęä¼ććć¾ćć
@MaximilianR ćććććć®č²¢ē®č ććć¾ćććééććŖćē§ćÆććććć®ä»äŗććć¾ććć ćććøć§ćÆćć®ęé·ćéććććććććęē¹ć§ććć°ćäæ®ę£ććććIRC / email / StackOverflowćŖć©ć§ć¦ć¼ć¶ć¼ććµćć¼ćććććéøęć§ćć¾ćććē¹ć«ćć«ćććć»ćć·ć³ć°ćć¼ć«ć®ććććććÆć®åé”ćŖć©ćÆć6ćę仄äøć®éäøēćŖć³ć¼ćć£ć³ć°ćåæ č¦ć§ćććäŗŗć ćęå°ććć ćć®ęē¹ć§ćÆććć¦ć³ćć¼ćć§RabbitMQćØć»ć¼åććµć¤ćŗć§ćććć8äŗŗććć«ćæć¤ć ć§åćć¦ććć®ć§ćē§ć ćć§ććć
åęćććć®ćÆććććä»ć«ćććć¾ćććRedisć»ć©ęéć®ććććć®ćÆćŖććØęćć¾ćć
amqp / kombućå®å ØćŖéåęć«ē§»ę¤ććä½ę„ć大ććŖęéć®ęµŖč²»ć§ććććå¤ćć®åé”ćč§£ę±ŗććććć«åæ č¦ć§ććć ćććććććÆę±ŗćć¦å®äŗćć¾ććć§ććć
@askäøčØć®ć”ćć»ć¼ćøćÆćSQSć«åćå „ććććØć«ć¾ć čå³ćććććØćęå³ćć¾ććļ¼ ććć«éćć¦ććSQSćć±ććć1ć¤ćććŖćććØć«ę°ä»ćć¾ććććććć„ć”ć³ćć«ćå®éØēćč¦åćč”Øē¤ŗććć¾ćć SQSć®ē¾åØć®ē¶ę³ćØå°ę„ć®ćć¼ćŗć«ć¤ćć¦ć¢ććć¤ć¹ć§ćć¾ććļ¼
ę¬ēŖē°å¢ć§ćÆCelery + SQSćä½æēØććć®ć§ćććć«åćć¦ććććć®åŖåćęćććØćć§ććććććć¾ććććSQSććććøć§ćÆćć®é·ęčØē»ć®äøéØć§ćŖćå “åćÆććć®ćććŖē¶ę³ć«é„ćććććć¾ććć
@askäøčØćå ±ęćć¦ćććć¾ćć ē§ćÆććŖććć©ćććę„ć¦ććć®ćēč§£ć§ćć¾ćć ē§ćÆćć/ä»ć®ć¢ććć¼ććéćć¦ć»ććŖććć®ęåćē¶ęćććć¦ē¶ē¶ććć®ćććē°”åć«ćŖćććØćé”ć£ć¦ćć¾ć...
ééććŖćććŖćć®ćććøć§ćÆćć«ęåćå°½ććć¾ćććRedisć®ćµćć¼ććēµäŗććå “åćē§ćÆē¢ŗćć«å éØēć«Celeryćåćé¤ćććć«ććć·ć„ćć¾ćć RabbitMQćä½æēØććŖćēē±ćę¬å½ć«ē„ćććå “åćÆćéå ¬éć§č©³ććčŖ¬ęćć¾ćććå ¬éććć¦ććä»ć®ćććøć§ćÆććéé£ććććÆććć¾ććć
é¢é£ļ¼Dockerć§ć®éēŗę¹ę³ćę©č½ććåÆč½ę§ććććććććć1ć¤ć®ć³ćć³ćć§ććććØćęę”ćć¾ććććććÆåæ ćććä»ć®ć¦ć¼ć¶ć¼ćå±éććę¹ę³ć§ćÆććć¾ććć
@nicksloan SQSćÆććć¹ćæć¼ććć„ć”ć³ćć§ćµćć¼ćććć¦ćććć©ć³ć¹ćć¼ććØćć¦ćŖć¹ćććć¦ćć¾ćļ¼ //docs.celeryproject.org/en/master/getting-started/brokers/index.html
SQSćć©ć³ć¹ćć¼ććéåęI / Oćä½æēØććććć«ęøćē“ćä½ę„ćÆć1000ćć«ćå°ćč¶ ććéé”ć§å¾ę“ććć¾ććć
@scoates Redisćć©ć³ć¹ćć¼ććÆćć”ćć»ć¼ćøć®čŖćæåćć«éåęI / Oćä½æēØććććć«å®éć«ćććć³ć°ććć¦ćććććē¶ę³ćÆććć«ęŖåćć¦ćć¾ćććå ¬éćÆä¾ē¶ćØćć¦åęćć¦ćć¾ćć Python redisć©ć¤ćć©ćŖćÆåęćć¦ćććććć”ćć»ć¼ćøćčŖćå “åć§ćć¾ć č¤ę°ć®čŖ²é”ćććććććć©ć®ććć«ę©č½ćććć«ć¤ćć¦ćÆå¤ćć®äøē¢ŗå®ę§ćććć¾ćć ćć°ćÆē°”åć«ććć«é ćć¦ććåÆč½ę§ććććredis-pyć©ć¤ćć©ćŖć«å¤ę“ćå ćććØćéę£ēµ±ēćŖę¹ę³ć§ä½æēØćć¦ććå “åć«åēćŖå½±éæćäøććåÆč½ę§ćććć¾ćć
Redisććµćć¼ććććć®ć§ćććę¬å½ć«ććć§ćć ē§ćRabbitMQ / Pivotalć§åćć¦ćććØććCeleryćå®č£ ććććæć¼ć³ć«ćÆćPythonć§å ±éć®ć½ćŖć„ć¼ć·ć§ć³ćåæ č¦ć ćØęććć®ć§ćē§ćÆććć®ććć«ę¦ć£ć¦ćć¾ććć ććććć³ćć„ććć£ćØćććä½æēØćć¦ććä¼ę„ććććę©č½ćććććć«ęč³ććć¦ććŖćå “åćē§ćÆę¶ē«ę“»åć«åćę®ćććęęŖć®å “åććććøć§ćÆććę¹å¤ććäŗŗć ć«ć¤ćŖććč¼øéć®ę·±å»ćŖåé”ćč§£ę±ŗć§ććŖććŖćć¾ćć ćććÆē§ć®äŗŗēćććę²ęØć«ćć士ę°ćä½äøććć¾ćć
ć»ććŖć®ę“å²ćčćććØććććÆéęæćććććććć¾ććććRabbitMQćććRedisć ććē¶ęććććØćčćć¾ćććļ¼
@MaximilianRē§ćÆćććę¤čØćć¾ććććē§ć®ę ē±ćÆć”ćć»ć¼ćøć®åćęø”ććØę£ććåę£ć·ć¹ćć ć®ę§ēÆć«ććć¾ćć RedisćÆćć”ćć»ć¼ćøē¢ŗčŖåæēćå®č£ ććććć«ę©č½ććBRPOPLPUSHć®å®č£ ćć¾ć ęä¾ćć¦ććććåę£ć·ć¹ćć ć§ćÆå®ęéć«ä¾åććććØćäøåÆč½ć§ććććØćåćå „ććććØćć§ććŖćććØćęććć«ćŖćć¾ćććåŗę¬ēćŖäŗå®ć§ćććē§ćÆćć£ćØč¦ęćć¦ćć¾ćć RabbitMQćÆå°ćŖććØćåé”é åćēå£ć«ę»ęćć¦ćććKafkaćNSQć®ćććŖä»ć®ćć¬ć¤ć¤ć¼ććć¾ćć å¤ćć®ć©ć¤ćć©ćŖććæć¹ćÆćć„ć¼ćåē“ćŖćŖć¹ćęä½ćØćć¦ę±ć£ć¦ćć¾ćććCeleryććććć®1ć¤ć«ćŖćććØćęå¦ćć¾ć:)
@scoates ļ¼ē§ćÆčŖåćć©ć®ććć«éēŗćć¦ććć®ććŖć©ć«ć¤ćć¦č©±ćć¦ćć¾ććć§ććć 2016幓ć«ćrabbitmqććććć¤ććć®ćÆé£ććććØčØćć®ćÆćć³ć»ć³ć¹ć ćØčØć£ć¦ćć¾ććć ć©ććć«ä½ćććććć¤ććććØć«ć¤ćć¦ä½ćē„ććŖćć¦ććę¬å½ć«å½¹ē«ć¤dockerćććć¾ćć ééć£ćä»®å®ćććŖćć§ćć ććć
ćććć§ē§ćć”ć§ćć§ććÆćććć@askć ć»ććŖćÆē“ ę“ćććč£½åć§ćććććŖćļ¼ććć¦ć³ćć„ććć£ļ¼ćęć£ć¦ććéććććŖć½ć¼ć¹ćčćććØćć³ć¢č£½åć«ē¦ē¹ćå½ć¦ćććØćęåć®ę±ŗęć ćØęćć¾ćć å¤ćć®ē°ćŖćäŗęę§ć®ćŖćć·ć¹ćć ćä½æēØćć¦åćåŖććę©č½ćęä¾ććććØććććØćÆć©ćć»ć©é£ćććę³åć§ćć¾ćć ę¶č²»č ć®č¦³ē¹ćććććØćéåøøć«å¤ćć®ćŖćć·ć§ć³ććććØćč£½åćč¤éć«ćŖććØęćć¾ćć ćććÆććććććŖćć®ć¦ć¼ć¶ć¼ć®ä½äŗŗććę··ä¹±ćććć ćććØē§ćÆē¢ŗäæ”ćć¦ćć¾ćććććć¼ć«ć¼ćęøććććØć«åŗå·ććććØćÆč£½åć®ććć«ę£ććććØć ćØęćć¾ćć AMQPćÆęØęŗēć§åŗćåćå „ćććć¦ćććććć³ć«ć§ćććrabbitmqćÆéåøøć«åŖććå®č£ ć§ćććććAMQPć«ē¦ē¹ćå½ć¦ćććØęćć¾ćć
ćććŖććć°ćŖććŖćä½ę„ćććć»ć©å¤ććŖćć®ćÆę²ććććØć§ććććć¹ć¦ć®ćć©ć³ć¹ćć¼ććØę©č½ććć¹ć¦åčØćććØćé±ć«ę°ęéć ćć§ćÆęē¶åÆč½ć§ćÆććć¾ććć
Redisćććć³ć«ćÆéåøøć«åē“ćŖć®ć§ććć©ć³ć¹ćć¼ććå®å Øć«éåęć«ęøćęććć®ćÆććć»ć©é£ććććØć§ćÆććć¾ććć Celeryćä»»ęć®Tornadoć©ć¤ćć©ćŖććµćć¼ćć§ććććć«ććć¬ć¤ć¤ć¼ćä½ęćć¾ććććććÆćasyncioćTwistedć§ćåćććć«ä½ęć§ćććććåå©ēØć§ćććÆć©ć¤ć¢ć³ććååØććå “åćććć¾ćć
PythonćÆstdlibć®asyncioć§åēć«å¤åćć¦ćć¾ćć ę°ććWebćć¬ć¼ć ćÆć¼ćÆćę°ććććććÆć¼ćÆć©ć¤ćć©ćŖćåæ č¦ć§ććććØć³ć·ć¹ćć å Øä½ćé©åæćććåæ č¦ćććć¾ćć ē¬čŖć®ć¤ćć³ćć«ć¼ććē¶ęćē¶ććåæ č¦ććŖććŖććććä½ę„ćå°ćē°”åć«ćŖćć¾ćććē§»č”ć«ćÆććć¤ćć®ä½ę„ćåæ č¦ć«ćŖćć¾ćć
ć¾ććč¤ę°ć®čØčŖććµćć¼ćććę°ććć”ćć»ć¼ćøćććć³ć«ćć§ććć®ć§ćGoćŖć©ć§ę°ćććÆć¼ć«ć¼ćä½ęććććØęćć¾ćć RedisćÆćć”ćć»ć¼ćøćććć¼ćććććć£ćŖć©ćå®č£ ćć¦ććŖććććć”ćć»ć¼ćøć³ć°ć®ēøäŗéēØę§ć«ęé©ć§ćÆććć¾ćććAMQPćććć³ć«ćÆćå ć®ć¦ć¼ć¹ć±ć¼ć¹ć®1ć¤ć§ćć£ććććééććŖćåŖä½ć«ē«ć£ć¦ćć¾ćć
@askē§ć®ć¢ććć¼ććÆćä¼ę„ć«ććć¼ć«ć¼ćē¶ęćććććØć§ććć ććć§ćÆćRedisć©ćć®čŖ°ććØ話ććć¦ćē½å¼åćå¾ććććć©ćććē¢ŗčŖćć¦ćæć¾ćććć
MongoDBććć®ä»ć®ćµć¼ćć¹ć«ć¤ćć¦ćåćć§ćć
SQLććć¼ć«ć¼ć«é¢ćć¦ćÆććć¾ćčÆćčćć§ćÆćŖćććµćć¼ććć¹ćć§ćÆćŖććØęćć¾ćć
ć³ć¼ććåé¤ćć代ććć«ę½åŗćć¦ćē¶ęćć¦ćććäŗŗćę¢ćććØćć§ćć¾ćć ååćŖé¢åæććŖćå “åćÆććććć®åæ
č¦ćÆććć¾ććć
ććć¼ć«ć¼ć«ćŖćććØćć§ććåÆäøć®SQLćć¼ćæćć¼ć¹ćÆPostgresć§ćććććÆćPub / Subę©č½ćåćć¦ććććć§ćććē¾åØćÆå®č£
ććć¦ćć¾ććć
ē§ćć”ćÆćććéęØå„Øć«ćć¦ćä½ćčµ·ććććč¦ćććØćć§ćććØęćć¾ćć ćć¶ćčŖ°ććć”ć³ććć³ć¹ćå¼ćē¶ćććå¾ę“ć«ćć£ć¦ććć®ććć«ć¹ćććć¢ćććć¾ćć ććć§ćŖććć°ćäŗŗć ćåæ č¦ćØćć¦ććććčŖ°ććµćć¼ćććććŖćč£½åćććć¾ćććććÆćē¾ęē¹ć§åčØ18ē„Øć«ćŖćåÆč½ę§ćććć¾ćć ćććRedisLabsć ććęŗććććØćÆęććŖć:)
ććććć³ćć„ććć£ćØćććä½æēØćć¦ććä¼ę„ććććę©č½ćććććć«ęč³ććć¦ććŖćå “åćē§ćÆę¶ē«ę“»åć«åćę®ćććęęŖć®å “åććććøć§ćÆććę¹å¤ććäŗŗć ć«ć¤ćŖććč¼øéć®ę·±å»ćŖåé”ćč§£ę±ŗć§ććŖććŖćć¾ćć ćććÆē§ć®äŗŗēćććę²ęØć«ćć士ę°ćä½äøććć¾ćć
ē§ćć”ćÆč¤ę°ć®ćććøć§ćÆćć§redisććć¼ć«ć¼ćØäøē·ć«ć»ććŖćä½æēØćć¦ćććććć«ä¾åćć¦ćć¾ćććē§ćÆćć®ęę ć«å¼·ćåęćć¾ćć ććŖćććććé«ć¬ćć«ć®åč³Ŗć«äæć¤ććØćć§ććŖććŖćć°ććććÆć»ććŖć«ęŖćååćäøććć ćć§ććæććŖćäøå¹øć«ćć¾ćāććŖććØć¦ć¼ć¶ć¼ć
ććć ē§ćÆRedisLabsć§åćć¦ćććęčæć¾ć§ć»ććŖć®ć¦ć¼ć¶ć¼ć§ććć @thedrowćÆćććē§ć®ę³Øęćå¼ćć¾ćććććć¦ē§éćÆćććå éØć§č°č«ćć¾ććć ē§ćć”ćÆēćććåćć§ćęä¼ććć¾ććć»ććŖć®äøéØćØćć¦redisćē¶ęććććØćéč¦ć ćØčćć¦ćć¾ćć åäŗŗēć«ććć®ććä»ć®äŗŗć«ććć®ććÆć¾ć ćććć¾ććććä½ćććåæ č¦ćććć®ćāāć話ćåćć¾ćććć
@dvirskyć®ććć«ćRedisćøć®ē§ć®ä½ę„ćÆRedis Labsć«ćć£ć¦å®å Øć«å¾ę“ććć¦ććććć®ćććÆćØć³ććęÆę“ć§ććå “åļ¼ć§ććć°ććć§ćļ¼ćRediså“ć§ęé©ćŖć½ćŖć„ć¼ć·ć§ć³ćč¦ć¤ććć®ćęÆę“ććććØć«é¢äøćć¾ććå®č£ ć®ē¹å®ć®ććØć容ęć«ććććć«ćRedisć”ćć»ć¼ćøć³ć°ćµćć¼ććę”å¼µćć¾ćć ć¾ććHAåƾåæć®ćØćÆć¹ććŖćØć³ć¹ćå®ē¾ććććć«ćććęē¹ć§Sentinel / RedisćÆć©ć¹ćæć¼ćä½æēØćććććÆćØć³ćć®ę©č½ćå¼·čŖæććććØćć§ćć¾ćć ē¾åØåæ č¦ćŖåŖåćč©ä¾”ćć¦ććčÆććć„ć¼ć¹ćć§ććć ćę©ćććććØćé”ć£ć¦ćć¾ćć
ćććÆę¬å½ć«čÆććć„ć¼ć¹ć§ćļ¼ ē§ćÆććŖććććć«ć³ćććććåć«é¢äæććä»äŗćē„ććććØęć£ć¦ććććØćå®å Øć«ēč§£ćć¦ćć¾ć:)
ä»ćÆåå3ęć§ććåé”ć®ćŖć¹ććÆåéćć¦ćć¾ććććēćć”ć¢ćććć¤ćē¤ŗćć¾ćć
CeleryćÆćRedisćøć®ć¤ć³ćæć¼ćć§ć¼ć¹ć§å®č£
ćććäøé£ć®ę©č½ćå®ē¾©ćć¦ćć¾ććć
AMQP APIćä½æēØćć¦ćäøč¬ēćŖę¹ę³ć§ć”ćć»ć¼ćøć³ć°ćä½æēØćć¾ćć ååćććć„ć¼ćøć®ć”ćć»ć¼ćøć³ć°ćpub / subććć³ććććÆć«ć¼ćć£ć³ć°ć ććććÆć«ć¼ćć£ć³ć°ćÆå³åÆćŖč¦ä»¶ć§ćÆććć¾ććććę®ććÆ1ļ¼ćæć¹ćÆć”ćć»ć¼ćøć®å¦ēć2ļ¼ē£č¦ć¤ćć³ćć®éåäæ”ć3ļ¼ćÆć¼ć«ć¼ćøć®ć”ćć»ć¼ćøć®ććć¼ććć£ć¹ćļ¼ć·ć£ćććć¦ć³/åęå®č”ę§ć®åäøćŖć©ļ¼ć®Celeryć®äø»ćŖę©č½ć«ćØć£ć¦éč¦ć§ćć ļ¼ć
1ļ¼ćÆć¼ć«ć¼ćęä½ćććććÆććŖćććć«ćéåęć§ććåæ č¦ćććć¾ć
ē¾åØć®ćć¼ćøć§ć³ć§ćÆćåęåć®redis-pyć©ć¤ćć©ćŖćä½æēØćć¦ćć¾ćć ē§ćÆććććććÆćć¦ä½ćć¾ćć
éåęć§ć”ćć»ć¼ćøćę¶č²»ćć¾ććććÆć©ć¤ć¢ć³ćć§ä½ćčµ·ćć£ć¦ććć®ćę£ē¢ŗć«ćÆććććŖććććć¾ć ćć°ććććØęćć¾ćć å©ēØåÆč½ćŖéåęRedisćÆć©ć¤ć¢ć³ćććć§ć«ååØććåÆč½ę§ćććć¾ć
ē§ćć”ćä½æēØć§ććē«å·»/éåęćć¾ććÆēć§ćććč”ćåæ
č¦ććŖćććęęŖć®å “åćÆććć§ćÆćŖćććććć¾ćć
ćØć¦ćććŖććć¼ć«ćŖćć¾ćć
2ļ¼ę„ē¶ē®”ē
ćæć¹ćÆćę¶č²»ććę„ē¶ć1ć¤ćććpubsubćå®č”ććę„ē¶ć1ć¤ćććꬔć«ćć¼ć«ćććć¾ćć
ć”ćć»ć¼ćøć®ē¢ŗčŖćęŖē¢ŗčŖć”ćć»ć¼ćøć®å¾©å
ćŖć©ćåøÆåå¤ęä½ćå®č”ććććć®ę„ē¶ć®ę°ć ććć§ćÆćØć©ć¼å¦ēć«é¢ćć¦ę··ä¹±ććććä½æēØå¾ć«ćć¹ć¦ć®ę„ē¶ćéćććØćÆéćć¾ććć
3ļ¼ć”ćć»ć¼ćøć®ē¢ŗčŖ
ć”ćć»ć¼ćøćÆćē¢ŗčŖćććå¾ć«ć®ćæćµć¼ćć¼ććåé¤ććććć¹ć¦ć®ć”ćć»ć¼ćøć³ć³ć·ć„ć¼ćć¼ćć”ćć»ć¼ćøć復å
ććććØććåÆč¦ę§ćæć¤ć ć¢ć¦ććććć¾ćć ć¾ććććÆę··ä¹±ć§ćć
ććć«ć¤ćć¦ćÆå¾ć§č©³ććčŖ¬ęćć¾ćć
@askć«ęč¬ćå¤éØć©ć¤ćć©ćŖć«ä¾åććć®ć§ćÆćŖććććć¼ć«ć¼å ć§ē“ę„éäæ”ććććć¤ćć®ć³ćć³ćć«åæ č¦ćŖęå°éć®éåęRedisćµćć¼ććē“ę„å®č£ ććććØćēć«ććŖć£ć¦ććå “åćććć¾ćć
2ć¤ć ććććć¦ććććä»ć®ććć¤ćć®å°ććŖåé”ćććć«č§£ę±ŗćåæ č¦ćØććććØć«ę³Øęćć¦ćć ććć ćććÆććććę©č½ćć¦ćć¾ćććć”ćć»ć¼ćøć®ē¢ŗčŖåæēć«ćć£ć¦ć”ćć»ć¼ćøć失ćććå “åćććć¾ćććackćØćć„ć¬ć¼ć·ć§ć³ć®åćÆē¶ę³ććÆććć«ęŖćć£ćććććććÆć¦ć£ćć·ć„ćŖć¹ćé ē®ć§ćć åęRedisćÆć©ć¤ć¢ć³ćć«ćć£ć¦ćÆć¼ć«ć¼ćććććÆćććåÆč½ę§ćććć¾ććććć«ćććććć©ć¼ćć³ć¹ćä½äøććć¾ćć«ćÆć¼ć«ć¼ććć³ć°ćć¾ćć
1ļ¼ćÆć¼ć«ć¼ćęä½ćććććÆććŖćććć«ćéåęć§ććåæ č¦ćććć¾ć
ęå¾ć«ē¢ŗčŖćććØćććéåęRedisćÆć©ć¤ć¢ć³ććÆå®å Øć§ćÆććć¾ććć§ććļ¼ē«å·»ć®å “åćÆććć¤ćććć¾ćļ¼ć ćć®ćććŖē¶ę³ć§ē§ćä½åŗ¦ćč”ć£ćććØćÆćć¹ć¬ćććć¼ć«ćØć°ć¼ćć„ć¼ćæć¼ćØfuturesćä½æēØćć¦ćredis-pyćéåęćÆć©ć¤ć¢ć³ćć®ććć«åä½ćććććØć§ććć äø¦č”ćæć¹ćÆćå¤ććććććć¤ćć®ć¹ć¬ććć§å®č”ć§ććéććéåęćÆć©ć¤ć¢ć³ćććććć¾ćę©č½ćć¾ćć
ē·Øéļ¼ē§ćÆć¾ć Pythonć®asyncioćē“ę„ęä½ćć¦ćć¾ććććē§ćč¦ććØćććē«å·»ć«ććŖćä¼¼ć¦ććć®ć§ććć®ććæć¼ć³ćÆććććē°”åć«å®č”ć§ćć¾ćć
@dvirsky fork
ćä½æēØćć¦ćććććć¹ć¬ććć®ä½æēØćÆčرåÆććć¦ćć¾ććć PythonćÆćć®ć±ć¼ć¹ććµćć¼ććć¦ćć¾ćććć¾ććcpythonć®ććććä½ęćććå “åć§ćććć®ę¹ę³ć§å®å
Øćē¢ŗäæććć«ćÆćę¢åć®pythonć©ć¤ćć©ćŖļ¼å°ćŖććØćCę”å¼µę©č½ļ¼ć«ę³Øęę·±ćććććé©ēØććåæ
č¦ćććć¾ćć ćććÆćPythonćć°ćć©ćć«ć¼ć§å°ćåć«å®ē¾ććććććéåęI / Oćøć®ē§»č”ćč”ć£ć¦ćć¾ćć ć¾ććäøč¬ēć«ććć«ē§»åććåæ
č¦ćććć¾ćććććÆćPythonć®å°ę„ć§ćććć³ć¢éåęI / Oććµćć¼ććććććć«ćŖć£ćććć§ćć
@antirez reļ¼
ćć¤ć³ćć1ćć«ć¤ćć¦ćÆćå¤éØć©ć¤ćć©ćŖć«ä¾åććć®ć§ćÆćŖććććć¼ć«ć¼å ć§ē“ę„éäæ”ććććć¤ćć®ć³ćć³ćć«åæ č¦ćŖęå°éć®éåęRedisćµćć¼ććē“ę„å®č£ ććććØćēć«ććŖć£ć¦ććå “åćććć¾ćć
ē§ćÆććććć¾ććć redis-pyć®ć³ć¼ćć®ć»ćØćć©ćÆćć³ćć³ćć®å®č£ ć§ćÆćŖććććććÆć¼ćÆćØę„ē¶ć®ē®”ēćäøåæć«å±éćć¦ćć¾ć...
@dvirskyćć®ććć«å®å Øć«ę©č½ććę„ē¶ē®”ēćøć§ććŖććÆćććć¾ćć®ć§ćęéć®
@askćÆććredisćććć³ć«ćč§£ęććććć®å°ēØć®Cę”å¼µę©č½ć§ććhiredisćććć¾ććIIRCćÆéåęćÆć©ć¤ć¢ć³ćć§ćę©č½ćć¾ćć redisćéåęć«ććććć«ććć¾ć§ć©ć®ćććŖę¦ē„ćéøęćć¾ćććļ¼
ćØć«ćććē§ćÆęčæéåęćÆć©ć¤ć¢ć³ćć§ä½ćčµ·ćć£ć¦ććć®ććč¦ćåæ č¦ćććć¾ććē§ćÆéå»1幓åć®éå¤ćć®Pythonć®ä»äŗććć¦ćć¾ććć https://github.com/leporo/tornado-redisćÆćć¾ćę“»ēŗć§ćÆćŖćć£ćććć§ćć
ę¦ē„ćÆćć¾ćććć¾ćććć½ć±ćććć¤ćć³ćć«ć¼ćć«čæ½å ćć¦ćććØćć°BRPOPćåęēć«éäæ”ććć½ć±ćććčŖćæåćåÆč½ć«ćŖćć®ćå¾ ć£ć¦ćåæēćåęēć«čŖćæåćć¾ć;ļ¼
åæēć®č§£ęäøć«åčµ·åććę¹ę³ććŖććć
@dvirskyćććć³ć«č§£ę仄å¤ć®ē®ēć§hiredisćä½æēØćććØćgevent / eventletćØć®äŗęę§ć®åé”ćēŗēćļ¼ćć«ćććć»ćć·ć³ć°ć®ä»£ććć«ä½æēØććå “åļ¼ćCeleryćPyPyć§å®č”ććć¦ććå “åć®ē§»ę¤ę§ć®åé”ć§ććhiredisćåæ é ć«ćŖćć¾ćć
@dvirskyć¾ććpy-hiredisćÆćē¾ęē¹ć§ćÆćććć³ć«č§£ę仄å¤ć®ę©č½ćå ¬éćć¦ćć¾ććć
PythonćÆćē§ćäæ”ććććęē¹ć§ć¾ćØććŖéåęredisćÆć©ć¤ć¢ć³ććåæ č¦ćØććć®ć§ćé©åćŖćć®ćéå§ććććØćÆęŖćčćć§ćÆććć¾ććć ććØćć°ćredis-pyć§ćććć³ć«č§£ęć³ć¼ćć®äøéØććŖćć”ćÆćæćŖć³ć°ćć¾ćć
ććŖććÆä»geventćä½æć£ć¦ćć¾ććļ¼
@dvirskyéåęI / Oćä½æēØćć¦ćgeventćeventletćććć³ćć«ćććć»ćć·ć³ć°ļ¼preforkļ¼ććµćć¼ććć¾ćć ććććććŖćć1ć¤ććµćć¼ććććŖććććŖććÆéåøøä»ć®ćć®ćęć£ć¦ćć¾ćć
ćÆććgeventććæć¹ćÆć«ććé©ćć¦ććå “åćććć¾ćć ććØćć°ććæć¹ćÆććć¼ćæćć¼ć¹ć«ęøćč¾¼ćććHTTPćŖćÆćØć¹ććå®č”ććå “åćŖć©ć§ćć
FDćgeventć«å
¬éćć¦ē»é²ććć®ćÆē°”åć§ćććpy-hiredisć§ććć«ä½ę„ććåæ
č¦ćććć¾ćć
@dvirskyćććÆćPyCurlć§ć©ć®ććć«č”ććććć®ä¾ć§ćć https://gist.github.com/GuoJing/5875326
geventćØć³ć©ćć¬ć¼ć·ć§ć³ććć«ćÆćFDćå
¬éććåæ
č¦ćććć¾ćć
ē§ćÆęčæćRedisć®ć»ććŖćµćć¼ććåćå·»ćåé”ćē“¹ä»ććć¾ćććå¾¹åŗēćŖåęćÆå®äŗćć¦ćć¾ććććasyncioćä½æēØćć¦python redisćÆć©ć¤ć¢ć³ććä½ę/ć¢ććć°ć¬ć¼ćććććØćÆčÆćčćć®ććć«ęćć¾ćććęčæć®ćć³ććć¼ćÆćććÆććććęåć§ćććć asyncio + libuvć®äøć«å®č£ ćććåÆč½ćŖéćå¤ćć®ććć©ć¼ćć³ć¹ćēµćč¾¼ćæć¾ćć
åčć®ććć«åē §ćć¦ćć ćć
ćć®ē«å “ć«åƾćć¦ćć¾ććÆåé”ćč¤éć«ććććć«ćéēŗč ććć³ć¦ć¼ć¶ć¼ćØćć¦ć®RedisćÆć©ć¤ć¢ć³ćć§ć®ē§čŖčŗ«ć®ēµéØćććlibuvć«å®å Øć«ä¾åćććØćå®éć«ćÆćÆć©ć¤ć¢ć³ććę大ć®ććć©ć¼ćć³ć¹ćéęć§ććŖććŖćć¾ćććć®ććć«ćÆćhiredisćåæ é ć§ćć libuvć®å éØć§ćÆćå®éć«ioćé ććŖćććØćććć¾ćććioredisćÆNodećä»ćć¦ćććå®č”ćć¾ćććå®éć«ćÆććć©ć¼ćć³ć¹ćé«ćććć¾ććć
ćććć£ć¦ćē§ćę³å®ććć½ćŖć„ć¼ć·ć§ć³ć«ćÆćę··åćććhiredis-asyncå®č£ ćććć¾ćć ļ¼å„ć®čØćę¹ćććć°ćććććć®éøęč¢ć試ćć¦ćććććć®ćć§ćŖć¼ćććć³ć°ćØćć³ććć¼ćÆć試ćåæ č¦ćććć¾ćļ¼
@ merl-devåé”ćÆä¾ē¶ćØćć¦PyPyć§ćććhiredis + cffićÆē“ē²ćŖPythonćććć³ć«ćć¼ćµć¼ć®å®č£
ćććredisćććć³ć«ć®č§£ęć«ęéććććć¾ćć
å°ćŖććØćē§ć®ćć¼ćøć§ć³ć§ćÆćredis-pyć§ććć¤ćć®ćć¹ćć«å¤±ęćć¦ćć¾ćć https://github.com/redis/hiredis-py/pull/46ćåē
§ćć¦
CPythonę”å¼µę©č½ćØćć¦hiredisćÆć©ć¤ć¢ć³ććä½ęććććØćÆå®å Øć«åÆč½ć§ćć CFFIć«ć¤ćć¦ćÆć¾ć 100ļ¼ ē¢ŗäæ”ćććć¾ććć
åå¾ćć¾ććć
@thedrowćććÆē§ć«ęćåŗććć¾ć-ę°ććredisć¹ććŖć¼ć ę©č½ćč¦ć¾ćććļ¼ ćććÆćē¾åØć®ćć®ćććå ē¢ćŖć”ćć»ć¼ćøććć¼ć«ć¼ćØćć¦ä½æēØć§ćć¾ćć éććŖćGAć«ćŖćć¾ćć
ē§ćć”ćÆćć¦ćć¾ććć ē¾åØćredisććć¼ć«ć¼ććŖćć”ćÆćæćŖć³ć°ććę©č½ćÆććć¾ććć
ē§ćć”ćÆććŖććć”ćććććććć«ććć¤ćć®äŗåć®ęćęć£ć¦ććććØćęćć§ćć¾ććć
@thedrowē§ćć”ćÆ...ä½ćē“ęććŖćććććć¾ććććredisćØć³ć·ć¹ćć ćē©ę„µēć«ćµćć¼ćććććć«ććć«ććć¤ćć®ćŖć½ć¼ć¹ćę§ććććććć¾ććć
@dvirskyććŖććÆćć®ęę”ćęå³ćć¾ćććļ¼ ćććć£ć¦ć TAPPEND
ćä½æēØćć¦ćØć³ćć„ć¼ćć TREAD + TACK
ćä½æēØćć¦ććć„ć¼ćå¦ēćććć³ē¢ŗčŖåæēćč”ćććØćć§ćć¾ćć
@georgepsarakisćććÆććÆćęę”ć§ćÆćŖććę©č½ćć¦ććććć¬ćć£ććÆć¹ćÆXćć¤ć¾ćXADDć§ćć https://www.youtube.com/watch?v=ELDzy9lCFHQćåē §ćć¦
ć§ćÆćredisććć¼ć«ć¼ććµćć¼ćććććć®ęå¾ć®å¼ć³ćććÆä½ć§ććļ¼ čæććć”ć«éęØå„Øć«ćŖćäŗå®ć§ććļ¼
ē¾ęē¹ć§ćÆćŖćć
ć³ćć„ććć£ćć©ć”ćć®ę¹åć«å¾ćć¦ććć®ććććć¾ććć§ććććę°ćććććøć§ćÆććéå§ćć¦ćććå»ę¢ććććØćčćć¦ćććććććć¼ć«ć¼ćØćć¦Redisćä½æēØććććØćčŗčŗćć¦ćć¾ćć čćļ¼
redisććć¼ć«ć¼ćå½é¢ć®éćØć©ć¾ććØę³å®ććć®ćÆå®å Øć§ćć ćć¾ćć«ćå¤ćć®äŗŗććććäøē¶ćć¾ćć
ćć®éćć£ćØļ¼301 / 601ćÆå¤ććŖć£ć¦ćć¾ćć
@ermikćÆćé¢é£ććåé”ć«ć¤ćć¦ćććēč§£ććć®ć
ęćåčć«ćŖćć³ć”ć³ć
ććć ē§ćÆRedisLabsć§åćć¦ćććęčæć¾ć§ć»ććŖć®ć¦ć¼ć¶ć¼ć§ććć @thedrowćÆćććē§ć®ę³Øęćå¼ćć¾ćććććć¦ē§éćÆćććå éØć§č°č«ćć¾ććć ē§ćć”ćÆēćććåćć§ćęä¼ććć¾ććć»ććŖć®äøéØćØćć¦redisćē¶ęććććØćéč¦ć ćØčćć¦ćć¾ćć åäŗŗēć«ććć®ććä»ć®äŗŗć«ććć®ććÆć¾ć ćććć¾ććććä½ćććåæ č¦ćććć®ćāāć話ćåćć¾ćććć