Skip to content
/ xredis Public

Redis C++ client, support the data slice storage, support redis cluster, thread-safe,multi-platform,connection pool, read/write separation.

License

Notifications You must be signed in to change notification settings

0xsky/xredis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

39c20a5 · Jul 2, 2024
Jun 12, 2021
Jul 2, 2024
Mar 21, 2022
Mar 22, 2022
Jun 17, 2021
Jul 7, 2014
Jan 5, 2018
Jul 7, 2014
Jul 2, 2024
Jul 2, 2024
Jan 3, 2022

Repository files navigation

xRedis
Build Status License GitHub version

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

Features:

  • 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

中文版说明文档点这里

Dependencies

xredis requires hiredis only

Install

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 https://github.com/0xsky/xredis
cd xredis
make
sudo make install

Usage

#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("127.0.0.1", 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) {
        usleep(1000*1000*6);
        redisclient.keepalive();
    }

    return 0;
}

Todo

Support redis sentinel

Documentation

xredis

xRedis API Site
See examples directory for some examples

blog: xSky's Blog
xRedis QQ Group: 190107312