20 个仓库
Executes atomic state transitions within the data store to ensure thread-safe job acquisition.
Distinct from Atomic Task Locks: Distinct from Atomic Task Locks: focuses on the Lua-based implementation of atomic operations rather than general file-level locking.
Explore 20 awesome GitHub repositories matching data & databases · Lua Scripting. Refine with filters or upvote what's useful.
Redisson is a Java library and Redis client that functions as a distributed Java object mapper, caching provider, and locking framework. It maps Java collections and concurrency primitives to distributed implementations backed by Redis and Valkey, providing synchronous, asynchronous, and reactive APIs for interacting with these data stores. The project distinguishes itself by providing a comprehensive suite of distributed coordination tools, including a locking framework for managing semaphores and countdown latches across multiple application nodes. It also serves as a distributed messaging
Executes Lua scripts on the server to ensure multi-step operations are performed as a single atomic unit.
Bull is a Node.js library for managing distributed jobs and message queues using Redis as the primary data store. It functions as a distributed task worker, job scheduler, and priority queue manager designed to handle asynchronous workloads across multiple processes. The project distinguishes itself by providing a persistent communication channel that decouples servers through the exchange of serializable data objects. It ensures distributed system reliability by detecting stalled tasks and recovering from process crashes to ensure every queued job is completed. The system covers a broad ran
Utilizes server-side Lua scripts to perform atomic state transitions and prevent race conditions between distributed workers.
ioredis is a performance-focused Redis client for Node.js designed to execute commands and manage data connections. It provides a specialized interface for interacting with standalone servers, sharded clusters, and high-availability setups. The library distinguishes itself with native support for Redis Cluster, featuring automatic slot discovery and network address mapping, and Redis Sentinel for master node discovery and automatic failover. It also includes a dedicated Lua scripting interface that utilizes server-side caching to ensure atomic operations. The project covers a broad set of ca
Implements server-side Lua script execution with SHA1 caching to ensure atomicity and reduce network traffic.
Sidekiq is a background job processor and queue manager for Ruby that uses Redis to manage asynchronous tasks. It functions as a distributed task scheduler capable of handling periodic, delayed, and recurring jobs across a cluster of worker processes. The project features a job monitoring dashboard and administrative web interface for visualizing system state, tracking worker performance, and managing failed or dead jobs. It provides a distributed rate limiter to control execution frequency across multiple processes. The framework covers a broad range of operational capabilities, including j
Uses Lua scripting to execute atomic state transitions and queue movements on the Redis server.
Sidekiq is a Ruby background processing framework and asynchronous task runner. It functions as a Redis-backed background job processor that offloads heavy or time-consuming work from web requests to separate worker processes to ensure the main application remains responsive. The system operates as a Redis task queue, storing pending jobs in Redis to be processed concurrently by multiple threads. It provides a framework for distributed task queueing and asynchronous job scheduling to coordinate work across multiple server instances. The project covers Ruby application scaling by executing ba
Uses Lua scripts within Redis to execute atomic operations and prevent race conditions during job acquisition.
Asynq is a distributed background job processing framework for Go applications. It manages asynchronous task queues by offloading heavy operations to persistent storage, allowing the main application to remain responsive while background workers handle workloads. The system utilizes Redis to manage task state, concurrency, and message distribution across multiple worker instances. It employs atomic Lua scripting and sorted sets to ensure reliable job acquisition, precise scheduling of delayed tasks, and fault-tolerant processing through a two-stage acknowledgement flow. The framework support
Executes atomic state transitions within the data store to ensure thread-safe job acquisition and reliable task processing.
Garnet is a multi-threaded in-memory database and distributed key-value store. It functions as a high-performance remote cache store that implements the RESP wire protocol to maintain compatibility with existing Redis clients and libraries. The project is distinguished by a shared-memory architecture that enables parallel request processing across multiple cores for sub-millisecond latency. It features a tiered storage system that automatically offloads colder data from system memory to SSD or cloud storage layers, and includes a specialized vector search database for high-dimensional similar
Executes Lua scripts atomically on the server to combine multiple operations in one round trip.
Redis is a high-performance in-memory key-value store that functions as a distributed cache, message broker, and NoSQL database. It provides sub-millisecond read and write access to data stored in RAM and can operate as a vector database for indexing high-dimensional embeddings. The system supports a wide range of data storage and synchronization primitives, including the management of strings, hashes, lists, sets, and JSON documents. It enables real-time data operations through atomic transactions, hybrid persistence using snapshots and append-only logs, and high-availability configurations
Executes Lua scripts on the server to perform atomic state transitions and complex operations.
RedisInsight is a graphical user interface and management tool for browsing, analyzing, and administering Redis databases. It provides a visual environment for exploring key-value data structures, managing database instances, and performing data analysis across different operating systems and deployments. The tool distinguishes itself by providing dedicated visual managers for complex operations, including a vector database manager for configuring embeddings and similarity searches, a query workbench for executing raw commands and Lua scripts, and a performance monitoring dashboard for tracki
Executes Lua scripts from external files by automatically mapping required keys and arguments.
BullMQ is a Redis-backed message queue library and background processor designed for distributed task queueing. It functions as a distributed queue manager and task scheduler, utilizing Redis to manage asynchronous job processing and persistence. The system distinguishes itself through its role as a job workflow orchestrator, enabling the definition of complex parent-child job dependencies and hierarchies for multi-step workflows. It provides sandboxed process execution to isolate heavy workloads and prevent event loop blocking, alongside distributed rate limiting to protect downstream servic
Executes complex queue transitions and state updates via Lua scripts to ensure atomicity within Redis.
HAProxy is a high-performance TCP and HTTP proxy that distributes traffic across multiple backend servers to ensure availability and fault tolerance for critical services. It operates in either TCP or HTTP mode, with an event-driven, single-threaded reactor that handles tens of thousands of connections without context switching, and supports kernel-level data transfer to minimize memory usage and latency. What distinguishes HAProxy is its configuration-file-first design, where all load-balancing rules and runtime behavior are defined in a declarative text file parsed at startup. It embeds a L
Embeds and executes Lua code within the proxy to implement custom request handling and routing.
General purpose redis client
Runs Lua scripts directly on a Redis server using named parameter replacement for complex, atomic server-side logic.
Suricata is an open-source network intrusion detection and prevention engine that analyzes live network traffic in real-time to identify and alert on malicious activity. It operates as a rule-based threat detection system, matching traffic against user-defined signatures to detect known attack patterns and policy violations, and can be placed inline to actively block malicious packets before they reach their target. The engine inspects a wide range of application-layer protocols including HTTP, DNS, TLS, SMB, and MQTT, and supports high-performance packet capture through specialized hardware a
Ships a Lua scripting extension system that allows custom detection logic to be embedded directly in rules.
LedisDB 是一个用 Go 语言构建的分布式 NoSQL 键值存储。它作为一个高性能数据库服务器,使用可插拔的存储引擎持久化简单值、计数器和复杂数据结构。 该系统实现了 Redis 协议以保持与现有客户端库和驱动程序的兼容性,同时还提供了一个通过 JSON、BSON 或 msgpack 格式公开数据库功能的 HTTP 接口。它包含一个嵌入式虚拟机,用于执行自定义服务器端 Lua 脚本以进行复杂操作。 该平台通过主节点和从节点之间的数据复制支持高可用性。其功能涵盖了多种数据结构,包括哈希、集合和有序集合,以及批量写入、数据过期和数据库访问控制等功能。
Provides an embedded virtual machine to execute custom server-side Lua scripts for complex operations.
Ledisdb 是一个用 Go 编写的高性能 NoSQL 数据库服务器。它作为一个键值存储系统,支持复杂的数据结构,并利用持久化磁盘存储来管理超出系统内存容量的数据量。 该系统既可作为独立服务器,也可作为嵌入式引擎库直接集成到 Go 二进制文件中。它具备可脚本化的数据存储功能,能够执行服务器端 Lua 脚本以实现原子操作,并提供用于数据交换的 HTTP API,支持 JSON、BSON 和 msgpack 序列化。 该数据库包含主从节点间分布式数据复制的功能,以确保高可用性。它还实现了用于自动删除数据的过期时间(TTL)机制、用于请求安全的身份验证,以及用于修复损坏数据文件的维护工具。
Runs Lua scripts directly on the server to execute complex operations as a single atomic step.
Redsync 是一个分布式锁管理器和 Go Redis 客户端扩展,旨在确保对共享资源的独占访问。它通过使用 Redis 后端来协调同步并防止分布式环境中的竞态条件,从而在多个进程间实现互斥。 该库通过基于法定人数(quorum)的共识机制维持锁的有效性,要求成功写入大多数独立的 Redis 节点。它利用 Lua 脚本原子操作进行获取和释放,同时采用基于值的归属权验证和生存时间(TTL)过期机制来防止死锁。 该项目提供了分布式协调和应用程序同步功能,利用客户端重试轮询来管理资源获取超时。
Uses Lua scripting to execute lock acquisition and release as atomic operations on the Redis server.
Bee-queue 是一个 Node.js 后台处理系统,使用 Redis 进行作业排队和持久化。它旨在将繁重任务从主执行线程卸载到后台 worker,以保持应用响应性。 该项目提供分布式作业处理,允许 worker 节点跨多个进程运行以并发处理大量任务。它通过自动重试和停滞进程的恢复确保可靠的任务执行。 其能力范围涵盖延迟作业的异步任务调度、worker 节点的并发控制以及作业生命周期管理。它包含用于监控队列健康、跟踪作业进度以及根据作业状态检索结果的工具。 该系统支持批量作业入队以减少网络开销,并允许为失败任务设置自定义作业标识符和可配置的退避策略。
Utilizes server-side Lua scripts to ensure atomic state transitions and thread-safe job acquisition in Redis.
这是一个 Ruby 客户端库和协议驱动程序,用于将 Ruby 应用程序与 Redis 数据库集成。它作为一个通信层,管理协议版本并提供执行数据库操作的统一接口。 该库支持多种部署拓扑,包括独立实例、用于高可用性主节点发现和故障转移的 Redis Sentinel,以及具有槽位感知请求路由和节点发现的 Redis Cluster。它还提供使用一致性哈希的客户端分片,以将数据分布在独立的服务器上。 广泛的功能包括原子事务管理和用于服务器端转换的 Lua 脚本,以及对地理空间坐标和流等专用数据类型的支持。性能通过命令流水线和原生解析扩展进行优化,而安全性则通过 SSL/TLS 加密和双向证书认证进行处理。 该客户端包含使用容器编排独立和集群数据库拓扑的工具,用于自动化集成测试。
Executes Lua scripts on the Redis server to perform complex, atomic data transformations.
EFCore.BulkExtensions 是一个用于在 Entity Framework Core 生态系统中执行高性能批量插入、更新和删除操作的库。它充当数据库批量处理工具包,并作为原生 SQL Bulk Copy 的包装器,以实现跨多个数据库提供商的更快数据摄取和同步。 该库为关系数据同步提供了专门的功能,允许用户通过批量更新插入 (upsert) 和条件同步将数据库表与本地实体列表对齐。它还支持关系数据图插入,这使得在维护外键关系的同时,能够跨多个表添加大量父子记录。 该工具涵盖了广泛的批量数据操作,包括常规 CRUD 处理、表截断和直接表对表数据复制。它还包括用于服务器端批量更新和高性能数据库迁移的实用程序,无需将实体加载到应用程序内存中即可移动大量数据。
Executes raw SQL commands directly on the database engine to avoid the overhead of loading entities into memory.
Rueidis is a high-performance Redis client library for Go that provides a type-safe and asynchronous interface for interacting with Redis servers. It includes a full implementation of the Redis serialization protocol and a dedicated connection manager to handle pooling, multiplexing, and automatic pipelining. The library is distinguished by its support for RDMA connectivity to reduce latency and CPU overhead. It features a distributed lock manager that implements majority-based locking and optimistic concurrency control, as well as client-side caching with invalidation signals to minimize net
Supports the execution of server-side Lua scripts for atomic state transitions and performance optimization.