# redis/jedis

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/redis-jedis).**

12,331 stars · 3,901 forks · Java · MIT

## Links

- GitHub: https://github.com/redis/jedis
- Homepage: https://redis.github.io/jedis/
- awesome-repositories: https://awesome-repositories.com/repository/redis-jedis.md

## Topics

`java` `jedis` `redis` `redis-client` `redis-cluster`

## Description

Jedis is a Java library for connecting to Redis servers to execute commands and manage key-value data structures. It serves as a Java client and connection manager that facilitates the storage and retrieval of high-performance data.

The project provides a cluster client for distributing data and requests across multiple nodes to ensure scaling and high availability. It includes a dedicated pub-sub client for real-time messaging through channel subscriptions and a pipelining tool to increase throughput by sending multiple commands in a single network round-trip.

The library covers a broad range of operational capabilities, including automatic database failover, health monitoring, and connection pooling. It supports diverse data operations across complex structures like JSON and vector sets, and implements security via token-based authentication. Networking capabilities include support for Unix domain sockets and network address mapping for containerized environments.

## Tags

### Data & Databases

- [Redis Clients](https://awesome-repositories.com/f/data-databases/redis-clients.md) — Provides a comprehensive Java client for connecting to and interacting with Redis data stores. ([source](https://github.com/redis/jedis/blob/master/formatter-pom.xml))
- [Redis](https://awesome-repositories.com/f/data-databases/connection-managers/redis.md) — Includes a specialized system for managing the lifecycle, failover, and health of Redis connections.
- [Binary Protocols](https://awesome-repositories.com/f/data-databases/data-serialization-formats/binary-serialization-protocols/binary-protocols.md) — Serializes Java method calls into the RESP binary format for low-latency server communication.
- [Redis Client Interfaces](https://awesome-repositories.com/f/data-databases/redis-client-interfaces.md) — Provides a standardized API interface for executing diverse data manipulation commands on Redis servers. ([source](https://github.com/redis/jedis#readme))
- [Cluster Clients](https://awesome-repositories.com/f/data-databases/redis-clients/cluster-clients.md) — Provides a cluster client for distributing data and requests across multiple nodes to ensure scaling and high availability.
- [Cluster Distribution](https://awesome-repositories.com/f/data-databases/redis-clients/cluster-distribution.md) — Supports distributing data and requests across multiple server nodes to ensure high availability and scaling. ([source](https://github.com/redis/jedis#readme))
- [Data Structure Operations](https://awesome-repositories.com/f/data-databases/redis-clients/data-structure-operations.md) — Executes commands across various Redis data types, including specialized structures like JSON and vector sets. ([source](https://redis.github.io/jedis/))
- [Pipeline Batching](https://awesome-repositories.com/f/data-databases/batch-data-operations/pipeline-batching.md) — Increases throughput by sending multiple commands in a single stream without waiting for individual responses.
- [Connection Pools](https://awesome-repositories.com/f/data-databases/connection-pools.md) — Maintains a reusable set of open sockets to minimize the overhead of establishing new TCP connections.
- [Database Connection Health Monitoring](https://awesome-repositories.com/f/data-databases/database-connection-health-monitoring.md) — Verifies the availability and stability of database connections using background probes like PING commands. ([source](https://redis.github.io/jedis/failover/))
- [Retry Policies](https://awesome-repositories.com/f/data-databases/database-connectivity/retry-policies.md) — Implements automated logic for re-executing failed commands and switching to backup nodes during network interruptions. ([source](https://redis.github.io/jedis/))
- [Automatic Failover Mechanisms](https://awesome-repositories.com/f/data-databases/redis-clients/automatic-failover-mechanisms.md) — Implements circuit-breaker logic to automatically reroute traffic to backup nodes during server failures.
- [Cluster Topology Management](https://awesome-repositories.com/f/data-databases/redis-clients/cluster-topology-management.md) — Maintains a local map of hash slots to server nodes for direct request routing in clusters.
- [Command Pipelining](https://awesome-repositories.com/f/data-databases/redis-clients/command-pipelining.md) — Increases throughput and reduces network round-trips by batching multiple requests into a single network write. ([source](https://redis.github.io/jedis/advanced-usage/))
- [Pipelining Tools](https://awesome-repositories.com/f/data-databases/redis-clients/pipelining-tools.md) — Implements a pipelining tool to increase throughput by sending multiple commands in a single network round-trip.
- [Pub/Sub Clients](https://awesome-repositories.com/f/data-databases/redis-clients/pub-sub-clients.md) — Includes a dedicated pub-sub client for real-time messaging through channel subscriptions.
- [Redis Performance Tuning](https://awesome-repositories.com/f/data-databases/redis-performance-tuning.md) — Optimizes performance by reducing network latency through pipelining and Unix domain socket transport.

### Networking & Communication

- [Pub-Sub Systems](https://awesome-repositories.com/f/networking-communication/pub-sub-systems.md) — Provides a dedicated pub-sub client for real-time messaging via asynchronous channel subscriptions.
- [Real-Time Messaging](https://awesome-repositories.com/f/networking-communication/real-time-messaging.md) — Implements real-time communication by subscribing to channels to receive instant updates.
- [Unix Domain Socket Support](https://awesome-repositories.com/f/networking-communication/unix-domain-socket-support.md) — Reduces latency by using local Unix domain sockets instead of TCP/IP when the client and server share a host. ([source](https://redis.github.io/jedis/advanced-usage/))

### Software Engineering & Architecture

- [Channel Group Subscriptions](https://awesome-repositories.com/f/software-engineering-architecture/event-subscribers/channel-group-subscriptions.md) — Supports receiving real-time messages on specific channels or patterns using blocking connections. ([source](https://redis.github.io/jedis/advanced-usage/))
