2011-08-08

Redis hosting

I just finish my current project:
http://redis4you.com/

But what is Redis?

Redis is awesome NoSQL database.

From one side, it is simple key-value store, but it support not only text strings, but different data types - lists, sets, sorted sets, hashes and many more.

Because is in memory Redis operations are blazing fast and atomic.

Redis can do 110,000 SET operations per second or 81,000 GET operations per second.

Redis is persistent and can be used as data store engine - data is not lost if server is stopped or crashed

Using Redis you can speed up your web application or website by thousand times.

Redis supports many programming languages.

If you are programming take a look at some programming user cases.

2 comments:

Anonymous said...

Are you using it? what are you using redis for?

NMMM.NU said...

Yes I do.

As I wrote, Redis is NoSQL, e.g. non relational database.

Because Redis is in memory it have great performance, probably 1,000,000 times faster than SQL databases such Microsoft SQL, MySQL, Oracle - you name it.

However all data must fit in memory. Also when you change something it is not written immediately on the disk. This means if server crash or you have power failure you can lost some data.

Currently we are using Redis in 5-6 big websites that have 1M+ unique visitors per day (10M+ reloads / day).

Redis is exiting, but most programmers and companies invested lot of time, money and energy in relational database, so we almost always are using Redis with some relational database such MySQL or Maria DB.

In some projects we just do caching of MySQL results,

but in other sites we use Redis in parallel with MySQL- we write the data in both of the systems, so if something happen we will have the data in MySQL.

Because you probably want an example, I will give you some user cases:

In on of the sites we have very intensive inserts in one of the MySQL tables. We speed up those by simply using Redis "variable" for MySQL auto-increment.

In other project we cache the data, but if data is changed, instead of invalidating the cache, we update the cache data dynamically, so next time data is requested, even if data is updated, we do not read it from MySQL.

In different site we use 2 MySQL's + Sphinx and Redis is used as "semaphore" which shows from what MySQL server data will be read.

In different site we are using Redis as process queue.

In different site we are using Redis to determine if someone "abuse" the website by sending many requests per single IP and so on.

Finally www.redis4you.com is completely written in Redis and does not use MySQL or any other database at all.

Also we are consulting lots of companies about MySQL performance problems and in some cases we use Redis there.