Live data from Hacker News

Redis is fast – I'll cache in Postgres

dizzy.zone

1–10 of 311 posts

Re: Redis is fast – I'll cache in Postgres

#3
This isn't a great test setup. It's testing RTT rather than the peak throughput of Redis.

I'd suggest using Redis pipelining -- or better: using the excellent rueidis redis client which performs auto-pipelining. Wouldn't be surprising to see a 10x performance boost.

https://github.com/redis/rueidis

Re: Redis is fast – I'll cache in Postgres

#4
When I last benchmarked Redis vs. PostgreSQL for a simple k/v cache it was about ~1ms for PostgreSQL to fetch a key, and ~0.5ms for Redis with a similar setup as in this post (although I used "value bytea" instead of "value string" – I don't know if it matters, probably not; 1ms was fast enough that I didn't care to test).

I didn't measure setting keys or req/sec because for my use case keys were updated infrequently.

I generally find ms to be a more useful metric than reqs/sec or latency at full load, as this is not a typical load. Or at least wasn't for my use case.

Of course all depends on your use case etc. etc. In some cases throughput does matter. I would encourage everyone to run their own benchmarks suited to their own use case to be sure – should be quick and easy.

As I rule I recommend starting with PostgreSQL and using something else only if you're heavily using the cache or you run in to problems. Redis isn't too hard to run, but still just one less service to worry about. Or alternatively, just use a in-memory DB. Not always appropriate of course, but sometimes it is.

Re: Redis is fast – I'll cache in Postgres

#8
post #2

In similar vein, I’d always thought Redka ( https://github.com/nalgeon/redka ) was a neat idea since it gives you access to a subset of the Redis API backed by either SQLite or Postgres

Came here to post this. I’m wondering how Redka will compare with Postgres (and Redis) in terms of performance though.

Edit: https://antonz.org/redka/#performance

Re: Redis is fast – I'll cache in Postgres

#10
post #7

I think you just convinced me to drop redis for my new project. Definitely a premature optimization on my part.

“Dropping” something from a “new” project is premature optimization? Wherever you go, there you are.

I read it as dropping something that _had been_ a premature optimisation.
Post reply on HN