やったことだけ書く備忘録

ES6でnodejs用のMemcachedクライアント書いた

nodejsのMemcachedクライアント書いた



今のnpmにもMemcachedのクライアントはあるにはあるけど、再接続に対応してなかったり、そもそも大体コールバックパターンだし、クオリティが不安だったりしたので新しく書いた。
今新しく書くならES6で Promiseだよなーってことで。あと再接続とコマンドキューイング、コネクションプールも付けておいた。

https://github.com/ysugimoto/node-memcached-client

今の開発でMemcached使うケースって結構あると思うんだけど、みんなnodeの場合どうしてるんだろう。bluebirdでアレしてたりするのかな。
Redis使うのが一般的かもしれないけど、Memcachedの方がパフォーマンス出るケースもままあるし…。

大手だと社内で持ってたりしそう(プロトコル簡単だし)で、自分も業務で使いたかったから書いたけど、
せっかくだし公開しました。npm registryにある方がインストールしやすい。




$ npm install node-memcached-client


でインストールできます。



使い方




const Memached = require('node-memcached-client');
const 
client = new Memcached();

client.on('connect', () => {
  
client.set('foo''bar')
    .
then(() => client.get('foo'))
    .
then(value => assert(value === 'bar'));
});
client.connect();
 


みたいな感じでちょいモダンな感じで使えます。あとクエリをキューに溜めていきつつ通信するので、途中で接続が切れて復帰したときにキューから処理を実行するような感じになってます。
あとはコネクションプールも実装してて、1つのコネクションのキューが増えて詰まってくると別のコネクションを貼って擬似的にスケールするようなプーリングをします。

その他はサロゲートペア対応とかも(当たり前だけど)やったので結構モダンに使えるかなーって思います。とりあえずクライアント用途なのでstore系とget/delete系しか実装してないです。
細かい使い方はGithubを見てください。一通りテストは通してるけど、バグとかあればPRくださいませ。



余談



PHPもそうだけど、memcacheだったりmemcachedだったり、さらにnpmの場合はパッケージ名がカオスすぎるて辛い。

現場からは以上です。

« 前の記事 次の記事 »

4件のコメント

BalladolbineAppeava さん

Hello. And Bye.

Loppiehyhor さん

axman19@hotmail.com

RemOknaNug さん

Монтаж, обслуживание и ремонт окон -
<a href=http://gorodokon52.ru>Установка и ремонт окон - gorodokon52.ru</a>

FXBrokerFit さん

Agjentët e këmbimit valutor rangut. http://fx-brokers-review.com/index_al.html

コメントを投稿する

 画像に表示されている文字を入力してください。