Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master

Jul 27, 2010

  1. TJ Holowaychuk

    Added index.js symlink

    authored July 26, 2010

Jun 14, 2010

  1. Brian Hammond

    Bump version.

    authored June 14, 2010
  2. Brian Hammond

    Update to-do list.

    authored June 14, 2010
  3. Brian Hammond

    Show error in debug mode during reconnection attempts, etc.

    authored June 14, 2010

May 25, 2010

  1. Brian Hammond

    Preparing for Redis 2.0, tracking Redis master here

    authored May 25, 2010
  2. Brian Hammond

    Merge branch 'master' of github.com:fictorial/redis-node-client

    authored May 25, 2010
  3. Brian Hammond

    Fix test of file contents get/set which broke in node 0.1.96

    authored May 25, 2010
  4. Brian Hammond

    Handle exception thrown from callback.

    Thanks to Alberto Piai for the tip.
    authored May 25, 2010

May 10, 2010

  1. Isaac Z. Schlueter

    Change the name in package.json to be less redundant

    authored May 10, 2010 fictorial committed May 11, 2010
  2. Isaac Z. Schlueter

    Add a main file to the package.json

    authored May 06, 2010 fictorial committed May 11, 2010

May 07, 2010

  1. Brian Hammond

    Use binary encoding for arg serialization when not a Buffer.

    authored May 07, 2010

May 06, 2010

  1. Brian Hammond

    Add test for KEYS that have spaces

    authored May 05, 2010

May 04, 2010

  1. Brian Hammond

    Explode first arg if array. Allows mget(['a','b'],...)

    authored May 04, 2010

May 03, 2010

  1. Brian Hammond

    updated compatibility info

    authored May 02, 2010
  2. Brian Hammond

    bump version to 0.3.2

    authored May 02, 2010
  3. Brian Hammond

    Add SETEX support; fix expiration tests

    authored May 02, 2010
  4. Brian Hammond

    pmessage support from Redis 1.3.10 c8d0ea0

    authored May 02, 2010

May 01, 2010

  1. Brian Hammond

    tabs -> spaces

    authored April 30, 2010
  2. Brian Hammond

    bump version to 0.3.1

    authored April 30, 2010
  3. Brian Hammond

    Merge branch 'master' of github.com:fictorial/redis-node-client

    authored April 30, 2010
  4. Chris Winberry

    Fixed bug with buffer.slice() and large request data

    authored May 01, 2010 fictorial committed May 01, 2010

Apr 26, 2010

  1. Brian Hammond

    fix copyright structure

    authored April 26, 2010

Apr 21, 2010

  1. Brian Hammond

    Reconnection handling. Client will now always callback when it cannot…

    … connect or reconnect.
    
    Node.js fails to emit 'error' when Redis is killed.  Thus, we use `.expectClose` on the client as a workaround.
    
    A test script:
    
        var sys = require('sys');
        var redis = require("../lib/redis-client");
        redis.debugMode = true;
        var client = redis.createClient(redis.DEFAULT_PORT, redis.DEFAULT_HOST, { maxReconnectionAttempts: 2 });
        client.set('test:foo', 'bar', function (err, data){
          if (err) sys.log("set test:foo: " + err);
          else     sys.log("set test:foo: " + data);
        });
        setTimeout(function() {
          sys.log("timeout fired");
          client.get('test:foo', function (err, data) {
              if (err) sys.log("get test:foo: " + err);
              else     sys.log("get test:foo: " + data);
    
              sys.log("closing client");
              client.close();
          })}, 5000);
    
    When Redis is down the entire time:
    
        DEBUG: [ENQUEUE] Not connected. Request queued. There are 1 requests queued.
        DEBUG: [NO CONNECTION]
        21 Apr 17:40:22 - set test:foo: Error: failed to establish a connection to Redis
        21 Apr 17:40:27 - timeout fired
        21 Apr 17:40:27 - get test:foo: Error: failed to establish a connection to Redis
        21 Apr 17:40:27 - closing client
    
    When Redis is up the entire time:
    
        ~/projects/redis-node-client(master) ⚡ node test/phillip.js
        DEBUG: [ENQUEUE] Not connected. Request queued. There are 1 requests queued.
        DEBUG: [CONNECT]
        DEBUG: [FLUSH QUEUE] 1 queued request buffers.
        DEBUG: [DEQUEUE/SEND] *3<CRLF>$3<CRLF>set<CRLF>$8<CRLF>test:foo<CRLF>$3<CRLF>bar<CRLF>. queued buffers remaining = 0
        DEBUG: [RECV] +OK<CRLF>
        21 Apr 17:42:40 - set test:foo: true
        21 Apr 17:42:43 - timeout fired
        DEBUG: [SEND] *2<CRLF>$3<CRLF>get<CRLF>$8<CRLF>test:foo<CRLF> originalCommands = 1
        DEBUG: [RECV] $3<CRLF>bar<CRLF>
        21 Apr 17:42:43 - get test:foo: bar
        21 Apr 17:42:43 - closing client
        DEBUG: [NO CONNECTION]
    
    When Redis is up initially, then killed.
    
        ~/projects/redis-node-client(master) ⚡ node test/phillip.js
        DEBUG: [ENQUEUE] Not connected. Request queued. There are 1 requests queued.
        DEBUG: [CONNECT]
        DEBUG: [FLUSH QUEUE] 1 queued request buffers.
        DEBUG: [DEQUEUE/SEND] *3<CRLF>$3<CRLF>set<CRLF>$8<CRLF>test:foo<CRLF>$3<CRLF>bar<CRLF>. queued buffers remaining = 0
        ^[[CDEBUG: [RECV] +OK<CRLF>
        21 Apr 17:37:10 - set test:foo: true
        DEBUG: [NO CONNECTION]
        DEBUG: [RECONNECTING 1/2]
        DEBUG: [WAIT 1000 ms]
        DEBUG: [NO CONNECTION]
        DEBUG: [RECONNECTING 2/2]
        DEBUG: [WAIT 2000 ms]
        DEBUG: [NO CONNECTION]
        21 Apr 17:37:14 - timeout fired
        21 Apr 17:37:14 - get test:foo: Error: failed to establish a connection to Redis
        21 Apr 17:37:14 - closing client
    
    When Redis is up initially, then killed, then brought back up immediately.
    
        ~/projects/redis-node-client(master) ⚡ node test/phillip.js
        DEBUG: [ENQUEUE] Not connected. Request queued. There are 1 requests queued.
        DEBUG: [CONNECT]
        DEBUG: [FLUSH QUEUE] 1 queued request buffers.
        DEBUG: [DEQUEUE/SEND] *3<CRLF>$3<CRLF>set<CRLF>$8<CRLF>test:foo<CRLF>$3<CRLF>bar<CRLF>. queued buffers remaining = 0
        DEBUG: [RECV] +OK<CRLF>
        21 Apr 17:43:17 - set test:foo: true
        DEBUG: [NO CONNECTION]
        DEBUG: [RECONNECTING 1/2]
        DEBUG: [WAIT 1000 ms]
        DEBUG: [CONNECT]
        21 Apr 17:43:22 - timeout fired
        DEBUG: [SEND] *2<CRLF>$3<CRLF>get<CRLF>$8<CRLF>test:foo<CRLF> originalCommands = 1
        DEBUG: [RECV] $3<CRLF>bar<CRLF>
        21 Apr 17:43:22 - get test:foo: bar
        21 Apr 17:43:22 - closing client
        DEBUG: [NO CONNECTION]
    authored April 21, 2010
  2. Brian Hammond

    Use Buffer.byteLength not process._byteLength

    authored April 21, 2010

Apr 20, 2010

  1. Brian Hammond

    Solidify reconnection handling, and associated queueing, etc.

    Reconnections to Redis should be transparent to the user of redis-node-client.
    
    The user can just call command methods (e.g. lpush) even when not connected to
    Redis. The commands will be submitted to Redis when a connection to Redis is
    established. For commands that were submitted and the connection to Redis lost
    before receiving a reply, the reply will never come, and we have no knowledge
    of which submitted commands were processed by Redis. In this case, submitted
    commands will have their callbacks called with an err of an Error object whose
    .message is "IO Error" and whose .originalCommand is an Array containing the
    original command at index 0 and arguments thereafter. It is up to the caller to
    attempt to retry the call but the original callback is removed as the reply
    will never come for that submitted command.
    
    The user should be notified when a connection cannot be established (or a
    reconnection reestablished). If a connection to Redis fails and cannot be
    reestablished, the client emits noconnection. No reconnections will be
    attempted if the first connection attempt fails.
    
    The user should be notified when an attempt is made to reconnect to Redis after
    the initial or subsequent established connection is lost. The client emits
    reconnecting upon a reconnection attempt, and reconnected if the connection was
    reestablished.
    
    The user should be notified when a connection is established. The client emits
    a connected event when first connected, and reconnected when a connection is
    later reestablished automatically.
    authored April 20, 2010
  2. Brian Hammond

    Not using NPM ATM FYI

    authored April 20, 2010
  3. Brian Hammond

    actually, it's INCR not GET

    authored April 20, 2010
  4. Brian Hammond

    Updated README

    authored April 20, 2010
  5. Brian Hammond

    Remove autoReconnect option (just set maxReconn...=0). Dealing with u…

    …ncertain number of commands processed when Redis is brought down and we try to reconnect and resend anything queued. Works fine still when Redis is up of course.
    authored April 20, 2010
  6. Brian Hammond

    Updated simple PUBSUB example given that we no longer require one to …

    …wait for the client to connect to redis before issuing commands
    authored April 19, 2010
  7. Brian Hammond

    Fixed this; TODO updated

    authored April 19, 2010
  8. Brian Hammond

    Queue commands when not connected; auto-reconnect works; emits events…

    … 'connected', 'reconnecting', and 'noconnection' now; (thanks to pilif for motivating me to fix these)
    authored April 19, 2010

Apr 19, 2010

  1. Brian Hammond

    Allow test to be run from repo root/clone dir

    authored April 19, 2010
  2. Brian Hammond

    Added binary-safety test which SETs/GETs a PNG image; works fine, no …

    …new release needed.
    authored April 19, 2010
  3. Brian Hammond

    Updated to-do list for additional test

    authored April 19, 2010
Something went wrong with that request. Please try again.