@vortus-solutions/redis-service v1.0.0
Redis Service Package with Lua Scripts
A Node.js package that provides a robust Redis service implementation with built-in Lua script support. This package helps manage Redis connections and execute predefined Lua scripts efficiently.
Features
- Connection management for multiple Redis instances
- Built-in Lua scripts for common operations
- Auto-pipelining support
- Promise-based API
- Connection error handling
- Customizable configuration
Installation
npm install @vortus-solutions/redis-serviceBasic Usage
const RedisService = require('@vortus-solutions/redis-service');
// Create a connection
await RedisService.createConnection('main', {
host: '127.0.0.1',
port: 6379,
db: 0
}, []);
// Get connection instance
const redis = RedisService.getConnection('main');Available Lua Scripts
zaddLimit
Adds a member to a sorted set with a limit on the total number of members.
Parameters:
key: Sorted set keyscore: Member scoremember: Value to addlimit: Maximum number of membersoffset: Number of members to remove from start
expireNX
Sets expiration on a key only if it doesn't have one.
Parameters:
key: Redis keyttl: Time to live in seconds
setHIfHigher
Sets hash field value only if new value is higher than existing.
Parameters:
key: Hash keyfield: Hash fieldvalue: New value
setHIfLower
Sets hash field value only if new value is lower than existing.
Parameters:
key: Hash keyfield: Hash fieldvalue: New value
getPolylineChunks
Retrieves polyline chunks based on latitude and longitude bounds.
Parameters:
key: Base key for polyline datalatitude: Target latitudelongitude: Target longitude
API Reference
RedisService
Constructor
new RedisService()Methods
createConnection(connectionName, options = {}, luaScriptNames = []): Creates a new Redis connection.getConnection(connectionName): Returns the existing connection by name.closeAll(): Closes all active connections.
LuaScriptsService
Methods
register(name, script): Register a new Lua script.get(name): Get a script by name.getScripts(names): Get multiple scripts by their names.getAvailableScripts(): List all available scripts.
Configuration Options
Default connection options can be customized when creating a connection:
const defaultOptions = {
enableAutoPipelining: false,
showFriendlyErrorStack: true,
enableOfflineQueue: true,
host: '127.0.0.1',
port: 6379,
db: 0
};Error Handling
The package includes built-in error handling for connection issues:
try {
await RedisService.createConnection('main');
} catch (error) {
console.error('Redis connection error:', error);
}Best Practices
- Always close connections when done:
await RedisService.closeAll(); - Reuse connections instead of creating new ones.
- Handle connection errors appropriately.
- Use auto-pipelining for bulk operations.
License
MIT
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
1 year ago