Redis : What and Why?

In This post i share some information related Redis but first read this question.

How we can actually save the number of requests to the database ?

Yes, Solution is Caching. Caching is the process of storing some data in Cache. Cache is a temporary storage component area where the data is stored so that in future, Data can be served faster. So today i am telling to you about Redis. According to Redis official website, It is an open source, in-memory data structure store, used as a database, cache and message broker. It supports various data structures such as Strings, Hashes, Lists, Sets etc.

Why use Redis?

These are some reasons:

  • It has been written in C. So It is Fast.
  • It’s a NoSql Database.
  • It is being used by tech-giants like GitHub, Pinterest, Snapchat, Craigslist, Digg, StackOverflow.
  • In order to save your cloud database calls and eventually saving some dollars out there, you can of course opt for caching so the Redis.
  • It is being supported in most of the languages like JavaScript, Java, Go, C, C++, C#, Python, Objective-C, PHP and almost every famous language out there has support for this.
  • It is open source and stable.

What is Redis? | Introduction | Overview


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, geospatial indexes with radius queries and streams. It has built-in replication, Lua scripting, LRU eviction, transactions and different levels of on-disk persistence, and provides high availability via Redis Sentinel and automatic partitioning with RedisCluster. The project is mainly developed by Salvatore Sanfilippo and is currently sponsored by RedisLabs.

It is written in ANSI C and works in most POSIX systems like Linux, *BSD, OS X without external dependencies. Linux and OS X are the two operating systems where Redis is developed and more tested, and we recommend using Linux for deploying. It may work in Solaris-derived systems like SmartOS, but the support is best effort. There is no official support for Windows builds, but Microsoft develops and maintains a Win-64 port of Redis.

It also supports trivial-to-setup master-slave asynchronous replication, with very fast non-blocking first synchronization, auto-reconnection with partial resynchronization on net split. Some other features are Transactions,  Pub/Sub, Lua scripting, Keys with a limited time-to-live, LRU eviction of keys, Automatic failover.

You can run atomic operations on these types, like appending to a string; incrementing the value in a hash; pushing an element to a list; computing set intersection, union and difference; or getting the member with highest ranking in a sorted set.

Differences with other database systems

Redis made popular the idea of a system that can be considered at the same time a store and a cache, using a design where data is always modified and read from the main computer memory, but also stored on disk in a format that is not suitable for random access of data, but only in order to reconstruct the data back in memory once the system is restarted. At the same time Redis provides a data model that is very unusual compared to RDBMs, as user commands do not describe a query to be executed by the database engine, but specific operations that are performed on given abstract data types, hence data must be stored in a way which is suitable later for fast retrieval, without help from the database system in form of secondary indexes, aggregations or other common features of traditional RDBMs. The Redis implementation makes heavy use of the Fork (system_call), in order to duplicate the process holding the data, so that the parent process continues to serve clients, while the child process creates a copy of the data on disk.

Download and Try it

https://redis.io/download and  https://redis.io/

Available for Docker

It is possible to get Docker images of Redis from the Docker Hub. Multiple versions are available, usually updated in a short time after a new release is available.

How To Install Redis

Download, extract and compile with:

$ wget http://download.redis.io/releases/redis-5.0.3.tar.gz
$ tar xzf redis-5.0.3.tar.gz
$ cd redis-5.0.3
$ make

The binaries that are now compiled are available in the src directory. Run with:

$ src/redis-server

You can interact with Redis using the built-in client:

$ src/redis-cli
redis> set foo bar
OK
redis> get foo
"bar"

Are you new ? Try our online, interactive tutorial.

Clients

RedisClients are available for all major languages. List is very long so you can Visit this official webpage for all RedisCLients https://redis.io/clients


You may like also:


 

Harshvardhan Mishra

Hi, I'm Harshvardhan Mishra. I am a tech blogger and an IoT Enthusiast. I am eager to learn and explore tech related stuff! also, I wanted to deliver you the same as much as the simpler way with more informative content. I generally appreciate learning by doing, rather than only learning. Thank you for reading my blog! Happy learning! Follow and send tweets me on @harshvardhanrvm

3 thoughts on “Redis : What and Why?

Leave a Reply

%d bloggers like this: