Giter Club home page Giter Club logo

0xsky_xredis's Introduction

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](http://xredis.0xsky.com/)

See [examples](https://github.com/0xsky/xredis/blob/master/examples) directory for some examples

blog: xSky's Blog

xRedis QQ Group: 190107312

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

0xsky_xredis's People

Contributors

0xsky avatar oxsky avatar ao-streetart avatar archxm avatar freeeyes avatar nprhust avatar dynckevin avatar alexanderwilliom avatar lin12321lin avatar longlene avatar maxbad avatar wanghuajie2 avatar lulingz3 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.