There are many reasons to appreciate Redis: advanced data structures, high performance and scalability. It might be most popular in-memory data structure store. However, we’ve faced quite few challenges when developing the world's largest vacation rental search engine HomeToGo. I will talk about pushing technology to the limits and things beyond official documentation.
5. redis.io
“Redis is an open source (BSD licensed), in-memory data structure
store, used as a database, cache and message broker. It supports
data structures such as strings, hashes, lists, sets, sorted sets with
range queries, bitmaps, hyperloglogs and geospatial indexes with
radius queries”
5
19. Problem #4- periodical redis response time
spike
• CPU [OK]
• CPU spikes. ~3 h intervals [Warning]
• Connection rate [OK]
• Redis response time spikes > 500ms. ~3 h
intervals [Warning]
19
20. Solution - stop using KEYS, SCAN on prod
• On large databases operations leads to
blocking redis
• Change key salt instead of trying find and
delete records
• Always use ttl. Redis has pretty good eviction
policies
20
21. Problem #5 - periodical redis response time
spike
• CPU [OK]
• CPU spikes. ~1 min intervals [Warning]
• Connection rate [OK]
• Redis response time spikes > 400ms. ~1 min
intervals [Warning]
21
25. Cluster gotchas
• Choosing right node is entirely client responsibility
• Cluster delivers redirects in case wrong node used for
operation
• Potential connection rate problem again!!!
• Map caching/updating is also client responsibility
• Multi-key operation problem
25
32. Proxy features
32
• FAST Response time 7ms vs 4ms without proxy
• jruby
• multithreaded
• Supports Redis Cluster
• Auto hash map refresh
• For now only commands subset