Key repository for Ruby & Java

I need a recommendation for a keystore. Here are my criteria:

  • It is not necessary to be persistent, but you need to support many records (records are small, 100-1000 bytes).
  • The insert ( put ) will occur only occasionally, always in large data sets (volume)
  • Get will be random and should be fast.
  • Clients will be in Ruby and possibly Java
  • It should be relatively easy to set up and with as little maintenance as possible.
+4
source share
4 answers

Redis sounds like the right thing to use here. All this is in memory, so it is very fast ( GET and SET are O (1)), and it supports both Ruby and Java .

+6
source

Aerospike will be ideal due to the following reasons:

  • Key value based on clients available in Java and Ruby.
  • Bandwidth : Better than Redis / Mongo / Couchbase or any other NoSQL solution. See http://www.aerospike.com/blog/use-1-aerospike-server-not-12-redis-shards/ . We personally saw that it works fine with more than 300 thousand TPS Reads and 100k Write TPS at the same time.
  • Automatic and efficient data collection, rebalancing and data distribution using RIPEMD160.
  • Highly accessible system in case of fault tolerance and / or network partitions.
  • Open source code from version 3.0.
  • It can be used in cache mode without saving.
  • Supports LRU and TTL.
  • Little or no maintenance.
+5
source

AVL-Tree will give you O (log n) for insert, delete, search, and most of the rest.

0
source

1 and 3 both shout out the database engine.

If the number of entries is not insane, and you only have one client that uses this thing at a time, I would personally recommend sqlite, which works with both Java and Ruby (it will also run # 5). Otherwise, go to a real database system like MySql (since you are not on the Microsoft stack).

0
source

All Articles