项目作者: 0xsky

项目描述 :
Redis C++ client, support the data slice storage, support redis cluster, thread-safe,multi-platform,connection pool, read/write separation.
高级语言: C++
项目地址: git://github.com/0xsky/xredis.git
创建时间: 2014-07-07T14:52:46Z
项目社区:https://github.com/0xsky/xredis

开源协议:GNU General Public License v3.0

下载


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:

  1. sudo apt-get install libhiredis-dev

on centos/redhat/fedora system you can use:

  1. sudo yum install hiredis-devel

Then checkout the code and compile it

  1. git clone https://github.com/0xsky/xredis
  2. cd xredis
  3. make
  4. sudo make install

Usage

  1. #Accessing redis or redis Cluster using the xRedisClusterClient class
  2. #include "xRedisClusterClient.h"
  3. int main(int argc, char **argv) {
  4. xRedisClusterClient redisclient;
  5. # Connect to REDIS and establish a connection pool
  6. # If this node is a member of the REDIS cluster,
  7. # a connection pool is automatically established for each primary node in the cluster.
  8. std::string passwd = "passwd123";
  9. bool bRet = redisclient.connect("127.0.0.1", 6379, passwd, 4);
  10. RedisResult result;
  11. redisclient.command(result, "set %s %s", "key", "hello");
  12. printf("type:%d integer:%lld str:%s \r\n",
  13. result.type(), result.integer(), result.str());
  14. while (true) {
  15. usleep(1000*1000*6);
  16. redisclient.keepalive();
  17. }
  18. return 0;
  19. }

Todo

Support redis sentinel

Documentation

xredis

xRedis API Site

See examples directory for some examples

blog: xSky’s Blog

xRedis QQ Group: 190107312