All Projects → memcachier → Memjs

memcachier / Memjs

Licence: mit
A memcache client for node using the binary protocol and SASL authentication

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Memjs

Wp Spider Cache
Your friendly neighborhood caching solution for WordPress
Stars: ✭ 133 (-17.39%)
Mutual labels:  memcached, memcache
go-elasticache
Thin abstraction over the Memcache client package gomemcache (https://github.com/bradfitz/gomemcache) allowing it to support AWS ElastiCache cluster nodes
Stars: ✭ 15 (-90.68%)
Mutual labels:  memcached, memcache
Ninja Mutex
Mutex implementation for PHP
Stars: ✭ 180 (+11.8%)
Mutual labels:  memcached, memcache
memcache
Node.js memcached client with the most efficient ASCII protocol parser
Stars: ✭ 26 (-83.85%)
Mutual labels:  memcached, memcache
memcached
Memcached Operator for Kubernetes
Stars: ✭ 18 (-88.82%)
Mutual labels:  memcached, memcache
Xmemcached
High performance, easy to use multithreaded memcached client in java.
Stars: ✭ 715 (+344.1%)
Mutual labels:  memcached, memcache
rust-memcache
memcache client for rust
Stars: ✭ 106 (-34.16%)
Mutual labels:  memcached, memcache
mdserver-web
Simple Linux Panel
Stars: ✭ 1,064 (+560.87%)
Mutual labels:  memcached, memcache
Overlord
Overlord是哔哩哔哩基于Go语言编写的memcache和redis&cluster的代理及集群管理功能,致力于提供自动化高可用的缓存服务解决方案。
Stars: ✭ 1,884 (+1070.19%)
Mutual labels:  memcached, memcache
Pymemcache
A comprehensive, fast, pure-Python memcached client.
Stars: ✭ 552 (+242.86%)
Mutual labels:  memcached, memcache
Memcache Info
Simple and efficient way to show information about Memcache.
Stars: ✭ 84 (-47.83%)
Mutual labels:  memcached, memcache
Memcached Operator
A Kubernetes operator for memcached
Stars: ✭ 136 (-15.53%)
Mutual labels:  memcached
Quitnow Cache
A collection to store data for a given time
Stars: ✭ 109 (-32.3%)
Mutual labels:  memcache
Memcached exporter
Exports metrics from memcached servers for consumption by Prometheus.
Stars: ✭ 109 (-32.3%)
Mutual labels:  memcached
Go Cache
This project encapsulates multiple db servers, redis、ledis、memcache、file、memory、nosql、postgresql
Stars: ✭ 143 (-11.18%)
Mutual labels:  memcache
Shade
Memcached client for Scala
Stars: ✭ 107 (-33.54%)
Mutual labels:  memcached
Dogpile.cache
dogpile.cache is a Python caching API which provides a generic interface to caching backends of any variety
Stars: ✭ 106 (-34.16%)
Mutual labels:  memcached
Fastapi Plugins
FastAPI framework plugins
Stars: ✭ 104 (-35.4%)
Mutual labels:  memcached
Zebra database
A compact, lightweight and feature-rich PHP MySQLi database wrapper
Stars: ✭ 98 (-39.13%)
Mutual labels:  memcache
Nds
A Go (golang) Google App Engine datastore package with strongly consistent caching.
Stars: ✭ 154 (-4.35%)
Mutual labels:  memcache

MemJS

npm Build Status Gitter

MemJS is a pure Node.js client library for using memcache, in particular, the MemCachier service. It uses the binary protocol and support SASL authentication.

Documentation can be found here: https://memjs.netlify.com/

TOC

  1. Requirements
  2. Installation
  3. Configuration
  4. Usage
  5. How to help

Requirements

Supported Node.js versions

MemJS is tested to work with version 0.10 or higher of Node.js.

Installation

MemJS is available from the npm registry:

$ npm install memjs

To install from git:

$ git clone git://github.com/alevy/memjs.git
$ cd memjs
$ npm link

MemJS was designed for the MemCachier memcache service but will work with any memcache server that speaks the binary protocol. Many software repositories have a version of memcacached available for installation:

Ubuntu

$ apt-get install memcached

OS X

$ brew install memcached

Configuration

MemJS understands the following environment variables:

  • MEMCACHIER_SERVERS - used to determine which servers to connect to. Should be a comma separated list of [hostname:port].
  • MEMCACHIER_USERNAME - if present with MEMCACHIER_PASSWORD, MemJS will try to authenticated to the server using SASL.
  • MEMCACHIER_PASSWORD - if present with MEMCACHIER_USERNAME, MemJS will try to authenticated to the server using SASL.
  • MEMCACHE_USERNAME - used if MEMCACHIER_USERNAME is not present
  • MEMCACHE_PASSWORD - used if MEMCACHIER_PASSWORD is not present

Environment variables are only used as a fallback for explicit parameters.

Usage

You can start using MemJS immediately from the node console:

$ var memjs = require('memjs')
$ var client = memjs.Client.create()
$ client.get('hello', function(err, val) { console.log(val); })

If callbacks are not specified, the command calls return promises.

Settings Values

client.set('hello', 'world', {expires:600}, function(err, val) {

});

The set(key, val, options, callback) function accepts the following parameters.

  • key: key to set
  • val: value to set
  • options: an object of options. Currently supports only the key expires, which is a time interval, in seconds, after which memcached will expire the object
  • callback: a callback invoked after the value is set
    • err : error
    • val : value retrieved

Getting Values

client.get('hello', function(err, val) {

});

The get(key, callback) function accepts the following parameters.

Note that values are always returned as Buffers, regardless of whether a Buffer or String was passed to set.

  • key: key to retrieve
  • callback: a callback invoked after the value is retrieved
    • err : error
    • val : value retrieved as a Buffer

Contributing

The best way to contribute to the project is by reporting bugs and testing unpublished versions. If you have a staging or development app, the easiest way to do this is using the git repository as your memjs package dependency---in package.json:

{
  "name": "MyAppName",
  ...
  "dependencies": {
    ...
    "memjs": "git://github.com/alevy/memjs.git#master"
    ...
  }
}

If you find a bug, please report as an issue. If you fix it, please don't hesitate to send a pull request on GitHub or via e-mail.

Feature suggestions are also welcome! These includes suggestions about syntax and interface design.

Finally, a great way to contribute is to implement a feature that's missing and send a pull request. The list below contains some planned features that have not been addressed yet. You can also implement a feature not a list if you think it would be good.

TODOS

  • Support flags
  • Support multi commands
  • Support CAS
  • Consistent hashing for keys and/or pluggable hashing algorithm

Copyright

Copyright (c) 2012 Amit Levy, MemCachier. See LICENSE for details.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].