1
0
mirror of https://github.com/redis/node-redis.git synced 2025-08-06 02:15:48 +03:00

Initial example

This commit is contained in:
Itamar Haber
2023-01-22 21:18:34 +02:00
parent abf2b4bc82
commit d9c815f50e
2 changed files with 78 additions and 0 deletions

View File

@@ -0,0 +1,67 @@
import { createClient, SchemaFieldTypes} from 'redis';
const client = createClient();
await client.connect();
// Create an index.
// https://redis.io/commands/ft.create/
try {
await client.ft.create('idx:users', {
'$.name': {
type: SchemaFieldTypes.TEXT,
SORTABLE: 'UNF'
},
'$.age': {
type: SchemaFieldTypes.NUMERIC,
AS: 'age'
},
'$.coins': {
type: SchemaFieldTypes.NUMERIC,
AS: 'coins'
},
'$.email': {
type: SchemaFieldTypes.TAG,
AS: 'email'
}
}, {
ON: 'JSON',
PREFIX: 'noderedis:users'
});
} catch (e) {
if (e.message === 'Index already exists') {
console.log('Index exists already, skipped creation.');
} else {
// Something went wrong, perhaps RediSearch isn't installed...
console.error(e);
process.exit(1);
}
}
// Add some users.
// https://redis.io/commands/json.set/
await Promise.all([
client.json.set('noderedis:users:1', '$', {
name: 'Alice',
age: 32,
coins: 100,
email: 'alice@nonexist.com'
}),
client.json.set('noderedis:users:2', '$', {
name: 'Bob',
age: 23,
coins: 15,
email: 'bob@somewhere.gov'
})
]);
// Search all users under 30
console.log('Users under 30 years old:');
console.log(
// https://redis.io/commands/ft.search/
JSON.stringify(
await client.ft.search('idx:users', '@age:[0 30]'),
null,
2
)
);