Options for Redis 5.0 Cluster with C++ - c++

I am exploring Redis 5.0 cluster with C++. I have already seen different options listed on Redis official site, but none of the C++ clients are marked recommended there. I tried C client "hiredis-vip", it worked for my initial prototype, however upon reporting an issue (and its workaround) I am told that this client doesn't seem to officially support Redis 5.0 (see my issue report and its comments here).
I would really appreciate if anyone having experience of using Redis with C/C++ can advise some good C/C++ client options meeting following requirements:
Support for newer versions of Redis (ideally 5.0) with Cluster support
Will be great to have out of the box RedLock implementation as well (for my distributed locking requirement).

Try bredis. Basically it thin wrapper around redis-protocol, so, as soon as the protocol does not change, it will automatically support all redis features, for example streams.

I wrote a C++ client which supports Redis Cluster with STL-like interfaces. You can have a try: redis-plus-plus.
However, by now, it doesn't support RedLock.
auto cluster = RedisCluster("tcp://127.0.0.1:7000");
cluster.set("key", "value");
cluster.lpush("list", {"a", "b", "c"});

Related

Does GCP ops agent receiver support kafka version 3.2.x?

I am trying to collect logs/metrics from kafka connector in GCP.
I read the documentation
It seems that ops agent only support till Apache Kafka Version 3.0.0 and I am using Kafka version 3.2.3.
May I know if there is any roadmap of version support of Kafka in ops agent?
Or any alternatives I can do for this? Please advise.
From a technical standpoint, there is no hard requirement that the version of Kafka you use is within the range documented. You're free to try using a newer version than what's documented (the Ops Agent will not forbid you from doing this), and it "might" work; it's just not officially supported or tested.
That being said, I tried running version 3.2.3 through the Ops Agent integration tests and they all passed, so there's a decent chance that 3.2.3 would work fine for you.

Using Neo4j database from C++

my problem is I want to use Neo4j database from a C++ program and I read a lot, but still don't know, how can I start.
First I would like to make a connection between Neo4j and C++, and I would like to create nodes from the C++ program.
Anyone have an example code, or can somebody help, how can I start?
For the upcoming binary remoting protocol there's already a driver written in C, see:
page: http://cleishm.github.io/libneo4j-client/
source: https://github.com/cleishm/libneo4j-client
Please note that this will only work on Neo4j 3.0 builds. As of today, milestone-2 is the most current one. Be sure to read the release notes when working with milestones.
There are no current C/C++ Neo4j drivers targeting Neo4j 2.x that I'm aware of. (See Stefan's answer for a C driver targeting the upcoming Neo4j 3.0 release)
However, using the transactional Cypher API endpoint you should be able to use any C++ http client / JSON parser to interact with Neo4j using Cypher.

Amazon Web Service RDS DB Engine Version

I'm want to use Amazon Web Service RDS.
So I'm working on process for setting.
But when I choose DB engine version,
there are two type(a, b) about 5.6.19.
Are there difference between two types?
Thank you.
The a and b letter designations appear to indicate that the instance will be running the stated official release version plus bug fixes created or backported or otherwise applied by the RDS developers... So 5.6.19b would be the newer of those two. The issues they address are explained here:
http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MySQL.html#MySQL.Concepts.KnownIssuesAndLimitations
However, unless you have a specific reason not to, you should probably use the latest version available.

Is it possible to compile Oracle Pro*C without a database (skip semantic check)?

I am supporting development servers for 35+ versions of the product. Each version may not have same DB schema so traditionally we have to support Oracle instance for each version for the developers to build the Pro*C libraries.
Now the number of versions are too many to support with individual DB instances on individual Linux servers. So I was wondering either of these approaches are possible.
1) To compile Pro*C code (.pc .pcc) without semantic check (I know it's dangerous for release build but for quick test builds, developers don't need to wait for me to provide them a new server)
2) Have one server with 35+ instances of database, containing only meta data
I searched quite a few places if I can disable semantic check but no success. I tried to configure multiple instances on one Linux server but each instance uses quite a lot memory so having 35+ instances is out of question.
Any clever tricks and suggestions are much appreciated.
Thanks,
Tyn

using libdrizzle as an async mysql connector

I'm interested in using libdrizzle as a generic asynchronous-capable connector for mysql db for a c++ application (actually as a backend for hiberlite). Since early this year libdrizzle is no longer a separate project and its merged in the same drizzle project, so installing as a separate dependency (unrelated to the rest of drizzle) might have become slightly more complex.
I'm wondering if people has used this library for interfacing to MySql or MariaDB, probably make some mickey mouse benchmarks to have a rough idea how it stands relative to the synchronous default driver.
Also, comments on difficulties to install, setup, pitfalls (the documentation is essentially nonexistent) would be greatly appreciated.
You might want to take a look at ngx_drizzle (drizzle-nginx-module) at github.
From module description:
This is an nginx upstream module integrating libdrizzle into Nginx in a non-blocking and streamming way.
Essentially it provides a very efficient and flexible way for nginx internals to access MySQL, Drizzle, as well as other RDBMS's that support the Drizzle or MySQL wired protocol. Also it can serve as a direct REST interface to those RDBMS backends.
If you're using MySQL, then MySQL 5.0 ~ 5.5 is required. We're not sure if MySQL 5.6+ work; reports welcome!