Redis as data store: Installation
Introduction
Redis is open-source, advanced key-value data store server. It is counted as Nosql database for the key-value store category. It is more than just the cache server. It is more of data structure server as it supports data units as lists, sets, hashes and sorted set and It is very blazing fast in terms of performance. In this first installment on Redis articles series, i will go through installation of same.
Installation
Redis officially supports only linux ports and no official port for windows but do exist unofficial port for same, which is basically discouraged for production environment.
Following are steps to be followed for installation
Step-1: Download the archive
You can either download from official page from here or use the wget command from terminal as shown below in following command
$ wget http://redis.googlecode.com/files/redis-2.6.14.tar.gz
Step-2: Extract the archive file to directory of your choice
$ tar xzf redis-2.6.14.tar.gz /usr/ajduke/apps
Step-3: Building redis
$ cd /redis-2.6.14/src $ make
This will produce few redis binaries in same directory(src), which includes Redis server and Redis CLI, which are the core server engine and Redis interpreter for accessing and querying the redis server
Step-4: Run tests for built redis binaries
$ make test
(if this is not running then you need to install latest “tcl” using following, sudo apt-get install tcl)
It basically runs the all commands that redis have to make sure binaries are correctly built.
Step-5: Install binaries to standard bin directory
Now, to make redis binaries little more developer friendly, lets install this in the standard binary directory which is “/usr/bin/” to access using terminal from any directory.
$ sudo make install
If you wish to install binary somewhere else then you can use following
$ sudo make PREFIX=/path/to/your/dir install
Step-6: Check proper installation
Check for proper installation lets check for version details
check for redis server and check for redis-cli as follows
$ redis-server -v Redis server v=2.6.14 sha=00000000:0 malloc=jemalloc-3.2.0 bits=64 $ redis-cli -v redis-cli 2.6.14
Starting Redis Server
Use following for valid usages and help
$ redis-server -h
For starting the redis server, you can use one of following ways
- If you don’t pass anything as cmd args, it will internally use the defaults, such as running server on port 6379 etc.
$ redis-server
- You can specify few command line arguments and it will use that
$ redis-server --port 7793
- Using config file
$ redis-server /path/to/redis.conf
This will use the configuration found in mentioned configuration file
For now, you can use the one under <redis-install-dir>/redis.conf
$ redis-server /redis.conf
Usually, you should use last one as preferred way to start the server.
Using the Redis CLI
For start using cli, you can use one of following ways
- Connect local redis instance with default port (6379), after that redis prompt will appear
$redis-cli redis 127.0.0.1:6379>
- Connect to specific port on local machine
redis-cli -p // in our case $ redis-cli -p 5689 $redis 127.0.0.1:5689>
- Connect to specific host and port
$redis-cli -h -p // For e.g. $redis-cli -h 192.68.0.116 -p 5263 $redis 192.168.0.116:5263>
Once we got the redis cli prompt after connection, we can run few commands such as follows
$ redis-cli redis 127.0.0.1:6379> ping PONG redis 127.0.0.1:6379> info server # Server redis_version:2.6.14 redis_git_sha1:00000000 redis_git_dirty:0 redis_mode:standalone os:Linux 3.8.0-27-generic x86_64 arch_bits:64 multiplexing_api:epoll gcc_version:4.7.3 process_id:2700 run_id:ae48481c646364be1dc500cbbd7e4f9b415d78de tcp_port:6379 uptime_in_seconds:5698 uptime_in_days:0 hz:10 lru_clock:1343599 redis 127.0.0.1:6379> time 1) "1376585153" 2) "935261" redis 127.0.0.1:6379>
Install Redis as service
For development purpose, you can start and stop the redis server from terminal but for production servers, you should not do this, instead, you must install service of redis. For this purpose, redis has out of the box support with use of utility script from redis installation.
Note that, the script only works for Ubuntu or any debian system.
Go through following commands. It will ask for few things, such as, port number, log directory, config file location etc. But you can accept the defaults by hitting enter every time
$ cd /utils/ $ sudo ./install_server.sh Welcome to the redis service installer This script will help you easily set up a running redis server Please select the redis port for this instance: [6379] Selecting default: 6379 Please select the redis config file name [/etc/redis/6379.conf] Selected default - /etc/redis/6379.conf Please select the redis log filename [/var/log/redis_6379.log] Selected default - /var/log/redis_6379.log Please select the data directory for this instance [/var/lib/redis/6379] Selected default - /var/lib/redis/6379 Please select the redis executable path [/usr/local/bin/redis-server] s#^port [0-9]{4}$#port 6379#;s#^logfile .+$#logfile /var/log/redis_6379.log#;s#^dir .+$#dir /var/lib/redis/6379#;s#^pidfile .+$#pidfile /var/run/redis_6379.pid#;s#^daemonize no$#daemonize yes#; Copied /tmp/6379.conf => /etc/init.d/redis_6379 Installing service... update-rc.d: warning: /etc/init.d/redis_6379 missing LSB information update-rc.d: see <http://wiki.debian.org/LSBInitScripts> Adding system startup for /etc/init.d/redis_6379 ... /etc/rc0.d/K20redis_6379 -> ../init.d/redis_6379 /etc/rc1.d/K20redis_6379 -> ../init.d/redis_6379 /etc/rc6.d/K20redis_6379 -> ../init.d/redis_6379 /etc/rc2.d/S20redis_6379 -> ../init.d/redis_6379 /etc/rc3.d/S20redis_6379 -> ../init.d/redis_6379 /etc/rc4.d/S20redis_6379 -> ../init.d/redis_6379 /etc/rc5.d/S20redis_6379 -> ../init.d/redis_6379 Success! Starting Redis server... Installation successful!
Now, you can start and stop service using
$ sudo service <redis_service_name> start $ sudo service <redis_service_name> stop
In our case,
$ sudo service redis_6379 start $ sudo service redis_6379 stop
And after every time rebooting the system, it will start running in background.
Thats all for Redis installation.
Great article, I’m sharing this!