adding redis, tasks, api calls
This commit is contained in:
82
app/db/redis/redis.js
Normal file
82
app/db/redis/redis.js
Normal file
@ -0,0 +1,82 @@
|
||||
const { createClient } = require('redis');
|
||||
|
||||
class RedisClient {
|
||||
constructor(host) {
|
||||
this._host = host;
|
||||
}
|
||||
|
||||
get client() {
|
||||
return this._client;
|
||||
}
|
||||
|
||||
async connect() {
|
||||
const client = createClient({
|
||||
socket: {
|
||||
host: this._host,
|
||||
},
|
||||
});
|
||||
client.on('error', (err) => console.log('Redis Client Error', err));
|
||||
await client.connect();
|
||||
this._client = client;
|
||||
return client;
|
||||
}
|
||||
|
||||
async set(key, value) {
|
||||
await this._client.set(key, value);
|
||||
return value;
|
||||
}
|
||||
|
||||
async get(key) {
|
||||
const value = await this._client.get(key);
|
||||
return value;
|
||||
}
|
||||
|
||||
async disconnect() {
|
||||
await this._client.disconnect();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
RedisClient.setPair = async function(key, value) {
|
||||
const redis = new RedisClient(process.env.REDIS_HOST);
|
||||
await redis.connect();
|
||||
await redis.set(key, JSON.stringify(value));
|
||||
await redis.disconnect();
|
||||
}
|
||||
|
||||
RedisClient.getPair = async function(key) {
|
||||
const redis = new RedisClient(process.env.REDIS_HOST);
|
||||
await redis.connect();
|
||||
const value = await redis.get(key);
|
||||
await redis.disconnect();
|
||||
return JSON.parse(value);
|
||||
}
|
||||
|
||||
RedisClient.setCollection = async function(array) {
|
||||
const redis = new RedisClient(process.env.REDIS_HOST);
|
||||
|
||||
await redis.connect();
|
||||
if (Array.isArray(array)) {
|
||||
for (let index = 0; index < array.length; index++) {
|
||||
const pair = array[index];
|
||||
if (Array.isArray(pair)) {
|
||||
await redis.set(pair[0], JSON.stringify(pair[1]));
|
||||
} else {
|
||||
await redis.set(pair.key, JSON.stringify(pair.value));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (const key in array) {
|
||||
if (Object.hasOwnProperty.call(array, key)) {
|
||||
const value = array[key];
|
||||
await redis.set(key, JSON.stringify(value));
|
||||
}
|
||||
}
|
||||
}
|
||||
await redis.disconnect();
|
||||
}
|
||||
|
||||
|
||||
module.exports = {
|
||||
RedisClient,
|
||||
};
|
Reference in New Issue
Block a user