<commit_before># redis-node-client

A Redis client implementation for Node which runs atop Google V8.

This project lets you access a Redis instance using server-side JavaScript.

## Uses

The following projects form a web services implementation platform that is
highly scalable, and is very easy to design for, develop for, and deploy.

* Google V8 ECMAScript interpreter
* Node
* node-json-rpc
* Redis
* redis-node-client

Google V8 can be found on Google Code.  The other projects are available on
GitHub.

## Asynchronicity

Node performs all I/O using libev and is thus asynchronous.  This means that
while a typical Redis client might have code that accesses a Redis server in a
blocking call, Node-based code cannot.

Typical Redis client (e.g. Python):

    foo = redis.get('counter')

This Node-based Redis client:

    var foo = redis.get('counter', function(value) { 
      puts("counter = " + value) 
    })

That is, you must supply a callback function that is called when Redis returns,
even if Redis queries are extremely fast.

A potential upside to this slightly awkward requirement is that you can enjoy
the benefits of pipelining many Redis queries in a non-blocking way.  Redis
returns replies for requests in the order received.

See the tests/test.js file as a good example of this.

## Status

* The full Redis 1.0 command specification is supported.
* All tests pass (see above though)
* See the TODO file for known issues.

## Author

<NAME>, Fictorial<commit_msg>note about status (full redis 1.0 supported)<commit_after># redis-node-client

A Redis client implementation for Node which runs atop Google V8.

This project lets you access a Redis instance using server-side JavaScript.

## Asynchronicity

Node does not block, period.

This means that while a typical Redis client might have code that accesses a
Redis server in a blocking call, Node-based code cannot.

Typical Redis client (e.g. Python):

    foo = redis.get('counter')

This Node-based Redis client:

    var foo = redis.get('counter', function(value) { 
      puts("counter = " + value) 
    })

That is, you must supply a callback function that is called when Redis returns,
even if Redis queries are extremely fast.

A potential upside to this slightly awkward requirement is that you can enjoy
the benefits of pipelining many Redis queries in a non-blocking way.  Redis
returns replies for requests in the order received.

See the tests/test.js file as a good example of this.

## Status

* The full Redis 1.0 command specification is supported.
* All tests pass.
* See the TODO file for known issues.

## Author

<NAME>, Fictorial
{'fraction_non_alphanumeric': 0.06043329532497149, 'fraction_numerical': 0.003800836183960471, 'mean_word_length': 3.8740740740740742, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7160737', 'n_tokens_mistral': 746, 'n_tokens_neox': 719, 'n_words': 375}