Awesome Open Source
Awesome Open Source

Build Status License GitHub version

C++ Redis client, support the data slice storage, redis cluster, connection pool, read/write separation.


  • Support multi-node distributed storage of data, can customize the sharding rules;
  • Support to connect to master and slave nodes of each shard at the same time, support separation of master and slave reads and writes;
  • Support connection pooling for each storage node;
  • Support simultaneous connection of multiple data sharding clusters;
  • Support for connecting to official clusters, single or multiple nodes Support to set up a connection pool to each node, the client side automatically calculates the slot distribution. Support automatic calculation of node index position, support Redis cluster node change connection automatic switch; The connection pool to the cluster is automatically updated when the add/delete /slot distribution of the official cluster node changes.
  • Provide easy to use C++ interface encapsulation, has implemented most of the Redis command;
  • Only rely on the Hiredis library;
  • Multi-thread safety
  • Support password connection;
  • Support Linux and Windows platforms



xredis requires hiredis only


First step install libhiredis, on a Debian system you can use:

sudo apt-get install libhiredis-dev

on centos/redhat/fedora system you can use:

sudo yum install hiredis-devel

Then checkout the code and compile it

git clone
cd xredis
sudo make install


#Accessing redis or  redis Cluster using the xRedisClusterClient class

#include "xRedisClusterClient.h"
int main(int argc, char **argv) {
    xRedisClusterClient redisclient;
    # Connect to REDIS and establish a connection pool 
    # If this node is a member of the REDIS cluster, 
    # a connection pool is automatically established for each primary node in the cluster.
    std::string passwd = "passwd123";
    bool bRet = redisclient.connect("", 6379, passwd, 4);

    RedisResult result;
    redisclient.command(result, "set %s %s", "key", "hello");
    printf("type:%d integer:%lld str:%s \r\n",
        result.type(), result.integer(), result.str());

   while (true) {

    return 0;


Support redis sentinel



[xRedis API Site](

See [examples]( directory for some examples

blog: xSky's Blog

xRedis QQ Group: 190107312

支持作者: 捐赠作者 Donate with PayPal [email protected]

Support xRedis: BTC: bc1q2c0fqc6c5h36t46n2cgz4kel4dutvjpzvta5ru

Alternatives To Xredis
Select To Compare

Alternative Project Comparisons
Related Awesome Lists
Top Programming Languages

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
C Plus Plus (258,040
Redis (24,275
Thread (12,372
Multi Platform (1,673
Redis Client (670
Connection Pool (453
Threadsafe (427
Redis Cluster (335