Skip to content

Commit

Permalink
Add hash tutorial
Browse files Browse the repository at this point in the history
  • Loading branch information
uglide committed Jul 4, 2023
1 parent 0588b38 commit d268364
Showing 1 changed file with 120 additions and 0 deletions.
120 changes: 120 additions & 0 deletions doctests/hash-tutorial.js
@@ -0,0 +1,120 @@
// EXAMPLE: hash_tutorial
// REMOVE_START
import assert from 'assert';
// REMOVE_END

// HIDE_START
import { createClient } from 'redis';

const client = createClient();

client.on('error', err => console.log('Redis Client Error', err));

await client.connect();
// HIDE_END

// STEP_START set_get_all
const fieldsAdded = await client.hSet(
'bike:1',
{
model: 'Deimos',
brand: 'Ergonom',
type: 'Enduro bikes',
price: 4972,
},
)
console.log(`Number of fields were added: ${fieldsAdded}`);
// Number of fields were added: 4
//REMOVE_START
assert.equal(fieldsAdded, 4);
//REMOVE_END

const model = await client.hGet('bike:1', 'model');
console.log(`Model: ${model}`);
// Model: Deimos
// REMOVE_START
assert.equal(model, 'Deimos');
// REMOVE_END

const price = await client.hGet('bike:1', 'price');
console.log(`Price: ${price}`);
// Price: 4972
// REMOVE_START
assert.equal(price, '4972');
// REMOVE_END

const bike = await client.hGetAll('bike:1');
console.log(bike);
// {
// model: 'Deimos',
// brand: 'Ergonom',
// type: 'Enduro bikes',
// price: '4972'
// }
// REMOVE_START
assert.equal(Object.keys(bike).length, 4);
// REMOVE_END
// STEP_END

// STEP_START hmget
const fields = await client.hmGet('bike:1', ['model', 'price']);
console.log(fields);
// [ 'Deimos', '4972' ]
// REMOVE_START
assert.equal(fields.length, 2);
// REMOVE_END
// STEP_END

// STEP_START hincrby
let newPrice = await client.hIncrBy('bike:1', 'price', 100);
console.log(newPrice);
// 5072
// REMOVE_START
assert.equal(newPrice, 5072);
// REMOVE_END
newPrice = await client.hIncrBy('bike:1', 'price', -100);
console.log(newPrice);
// 4972
// REMOVE_START
assert.equal(newPrice, 4972);
// REMOVE_END
// STEP_END

// STEP_START incrby_get_mget
let rides = await client.hIncrBy('bike:1:stats', 'rides', 1);
console.log(rides);
// 1

rides = await client.hIncrBy('bike:1:stats', 'rides', 1);
console.log(rides);
// 2

rides = await client.hIncrBy('bike:1:stats', 'rides', 1);
console.log(rides);
// 3

let crashes = await client.hIncrBy('bike:1:stats', 'crashes', 1);
console.log(crashes);
// 1

let owners = await client.hIncrBy('bike:1:stats', 'owners', 1);
console.log(owners);
// 1

rides = await client.hGet('bike:1:stats', 'rides');
console.log(`Total rides: ${rides}`);
// Total rides: 3
// REMOVE_START
assert.equal(rides, 3);
// REMOVE_END
const stats = await client.hmGet('bike:1:stats', ['crashes', 'owners']);
console.log(`Bike stats: crashes=${stats[0]}, owners=${stats[1]}`);
// Bike stats: crashes=1, owners=1
// REMOVE_START
assert.equal(stats.length, 2);
// REMOVE_END
// STEP_END

// HIDE_START
await client.quit();
// HIDE_END

0 comments on commit d268364

Please sign in to comment.