{"id":43930,"date":"2015-09-21T14:18:43","date_gmt":"2015-09-21T11:18:43","guid":{"rendered":"http:\/\/www.javacodegeeks.com\/?p=43930"},"modified":"2023-12-06T14:50:39","modified_gmt":"2023-12-06T12:50:39","slug":"redis-installation","status":"publish","type":"post","link":"https:\/\/www.javacodegeeks.com\/2015\/09\/redis-installation.html","title":{"rendered":"Redis Installation"},"content":{"rendered":"<p><em>This article is part of our Academy Course titled <a href=\"http:\/\/www.javacodegeeks.com\/2015\/09\/redis-a-nosql-key-value-store.html\">Redis a NoSQL key-value store<\/a>.<\/em><\/p>\n<p><em>This is a crash course on Redis. You will learn how to install Redis and start up the server. Additionally, you will mess around with the Redis command line. More advanced topics follow, such as replication, sharding and clustering, while the integration of Redis with Spring Data is also explained. Check it out <a href=\"http:\/\/www.javacodegeeks.com\/2015\/09\/redis-a-nosql-key-value-store.html\">here<\/a>!<\/em><\/p>\n<div class=\"toc\">\n<h4>Table Of Contents<\/h4>\n<dl>\n<dt><a href=\"#introduction\">1. Introduction<\/a><\/dt>\n<dt><a href=\"#license\">2. License<\/a><\/dt>\n<dt><a href=\"#documentation\">3. Documentation<\/a><\/dt>\n<dt><a href=\"#install_on_linux\">4. Installing Redis on Linux<\/a><\/dt>\n<dt><a href=\"#install_on_windows\">5. Installing Redis on Windows<\/a><\/dt>\n<dt><a href=\"#validate_installation\">6. Validating the Installation<\/a><\/dt>\n<dt><a href=\"#basic_configuration\">7. Basic Configuration<\/a><\/dt>\n<dt><a href=\"#start_stop_server\">8. Starting\/Stopping the Server<\/a><\/dt>\n<dt><a href=\"#first_look_redisCLI\">9. First look at Redis CLI<\/a><\/dt>\n<dt><a href=\"#whats_next\">10. What\u2019s Next<\/a><\/dt>\n<\/dl>\n<\/div>\n<h2><a name=\"introduction\"><\/a>1. Introduction<\/h2>\n<p>Redis is probably the most widely known and arguably the best example among a huge pile of NoSQL solutions which came out from the community in recent years. Although thinking about Redis as a key\/value store is a valid assumption, Redis does much more, giving away to the hands of the developers the power of complex data structures. To quote <a href=\"http:\/\/redis.io\">http:\/\/redis.io<\/a>:<\/p>\n<blockquote>\n<p><em>\u201cRedis is an open source, BSD licensed, advanceds key-value store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets and sorted sets.\u201d<\/em><\/p>\n<\/blockquote>\n<p>Not to mention out-of-the box publish \/ subscribe support, clustering (experimental), sharding, replication and transactional semantics. The purpose of this tutorial is to provide brief yet comprehensive guide to the world of Redis by walking though its installation, configuration and features.<\/p>\n<p>The good way to think about Redis is as in-memory data store. If your data fits in memory, you will get the maximum from it and that is why Redis quite often is being used as advanced caching solution (instead of Memcached). But once your data stops to fit in memory, you will see a significant performance degradation caused by swapping to disk. Later in tutorial we will get back to this topic and see what other options we have.<\/p>\n<p>The latest version of Redis at the moment of this writing is <code>2.8.4<\/code> and that is the one we will use across whole tutorial.<\/p>\n<h2><a name=\"license\"><\/a>2. License<\/h2>\n<p>Redis is open source software released under the terms of the three clause BSD license. More details on <a href=\"http:\/\/redis.io\/topics\/license\">official Redis site<\/a>.<\/p>\n<h2><a name=\"documentation\"><\/a>3. Documentation<\/h2>\n<p>Redis team maintains the complete, very well organized and up-to-date documentation for every single feature or command you may need to know. It is a great reference for everyone, at any time, so do not hesitate to look at it if you have any questions or something is not quite clear. General documentation is available at <a href=\"http:\/\/redis.io\/documentation\">http:\/\/redis.io\/documentation<\/a> while commands have own section at <a href=\"http:\/\/redis.io\/commands\">http:\/\/redis.io\/commands<\/a> (we will refer quite often to it once we start to play with Redis).<\/p>\n<h2><a name=\"install_on_linux\"><\/a>4. Installing Redis on Linux<\/h2>\n<p>The best (and at the moment the only) way to Install Redis on your Linux box is to build it from source. To do so, the sources of the Redis could be downloaded from <a href=\"http:\/\/redis.io\/download\">http:\/\/redis.io\/download<\/a> (please be sure to pick the stable release branch). Once the archive is on your machine, a couple of simple and easy steps separate you from having your own Redis instance ready to use:<\/p>\n<ol>\n<li>Download\n<pre class=\"brush:bash\">wget http:\/\/download.redis.io\/releases\/redis-2.8.4.tar.gz\n<\/pre>\n<\/li>\n<li>Unpack the archive\n<pre class=\"brush:bash\">tar xfz redis-2.8.4.tar.gz\ncd redis-2.8.4\n<\/pre>\n<\/li>\n<li>Make the binaries\n<pre class=\"brush:bash\">make\n<\/pre>\n<p>or (in case you have Linux 32bit installed)<\/p>\n<pre class=\"brush:bash\">make 32bit\n<\/pre>\n<\/li>\n<li>Run tests (you need <code>Tcl 8.5+<\/code> to be installed to run the tests)\n<pre class=\"brush:bash\">make test\n<\/pre>\n<\/li>\n<li>Install (as <code>root<\/code> user or with <code>sudo<\/code> command)\n<pre class=\"brush:bash\">make install\n<\/pre>\n<\/li>\n<\/ol>\n<p>Worth to mention, Redis does not have any special requirement or dependencies, either runtime or compile time, and is compatible with most Linux distributions. The only preinstalled packages you need are gcc and make.<\/p>\n<p>By default, the aliases for Redis binaries will be created in <code>\/usr\/local\/bin<\/code> folder. For more insights, the <code>README<\/code> file is a great place to look in for advanced details (like changing default installation folder, common build errors troubleshooting, etc).<\/p>\n<h2><a name=\"install_on_windows\"><\/a>5. Installing Redis on Windows<\/h2>\n<p>Redis team does not support official Windows distributions. Luckily, there is an experimental Windows 32\/64 port supported by Microsoft Open Tech group and freely available on GitHub: <a href=\"https:\/\/github.com\/MSOpenTech\/redis\">https:\/\/github.com\/MSOpenTech\/redis<\/a>. One important thing to take into account is that Windows port is always behind latest Redis releases and as such is not as a feature-rich as you may need. At the moment of writing, the latest version of Redis available for Windows was <code>2.6.12<\/code>.<div style=\"display:inline-block; margin: 15px 0;\"> <div id=\"adngin-JavaCodeGeeks_incontent_video-0\" style=\"display:inline-block;\"><\/div> <\/div><\/p>\n<ol>\n<li>Clone the repository (or download it as a <code>ZIP<\/code> archive from <a href=\"https:\/\/github.com\/MSOpenTech\/redis\">https:\/\/github.com\/MSOpenTech\/redis<\/a> if you do not have <code>Git<\/code> installed)\n<pre class=\"brush:bash\">git clone https:\/\/github.com\/MSOpenTech\/redis\n<\/pre>\n<\/li>\n<li>For your convenience, there are pre-built binaries available in repository already. Just unpack them into convenient location.\n<ul>\n<li>Windows 32 bit: <code>bin\/release\/redisbin.zip<\/code><\/li>\n<li>Windows 64 bit: <code>bin\/release\/redisbin64.zip<\/code><\/li>\n<\/ul>\n<\/li>\n<li>However, if you want to, you can build Redis from sources as well. To do that, you need to have Microsoft Visual Studio 2010 or its free available version <a href=\"http:\/\/www.visualstudio.com\/en-us\/downloads#d-2010-express\">Microsoft Visual C++ 2010 Express Edition<\/a> available on Microsoft Visual Studio web site. Once you have it, just open solution file from <code>msvs\/RedisServer.sln<\/code> and build it. The binaries will be available under <code>msvs\/Debug<\/code> or <code>msvs\/Release<\/code>, depending on your build configuration and platform (32bit\/64bit).<\/li>\n<\/ol>\n<h2><a name=\"validate_installation\"><\/a>6. Validating the Installation<\/h2>\n<p>Once installation has been completed, your Linux box should have following executables located inside <code>\/usr\/local\/bin\/<\/code> folder:<\/p>\n<div class=\"wp-caption aligncenter\">\n<table border=\"2\">\n<tbody>\n<tr>\n<td><strong>Executable file name<\/strong><\/td>\n<td><strong>Description<\/strong><\/td>\n<\/tr>\n<tr>\n<td>redis-benchmark<\/td>\n<td>Redis benchmarking tool, very useful to simulate running a set of commands by many clients in parallel so to assess your Redis instance configuration (more details at <a href=\"http:\/\/redis.io\/topics\/benchmarks\">http:\/\/redis.io\/topics\/benchmarks<\/a>)<\/td>\n<\/tr>\n<tr>\n<td>redis-check-aof *<\/td>\n<td>Verifies and fixes if corrupted an append only log (AOF log) used by Redis to manage persistence (more details at <a href=\"http:\/\/redis.io\/topics\/persistence\">http:\/\/redis.io\/topics\/persistence<\/a>)<\/td>\n<\/tr>\n<tr>\n<td>redis-check-dump *<\/td>\n<td>Checks Redis database dump (RDB) file (more details at <a href=\"http:\/\/redis.io\/topics\/quickstart\">http:\/\/redis.io\/topics\/quickstart<\/a>)<\/td>\n<\/tr>\n<tr>\n<td>redis-cli<\/td>\n<td>Command line interface utility to communicate with Redis server (more details at <a href=\"http:\/\/redis.io\/topics\/quickstart\">http:\/\/redis.io\/topics\/quickstart<\/a> and in <a href=\"#first_look_redisCLI\">First look at Redis CLI<\/a> section)<\/td>\n<\/tr>\n<tr>\n<td>redis-server<\/td>\n<td>Redis server (more details at <a href=\"http:\/\/redis.io\/topics\/quickstart\">http:\/\/redis.io\/topics\/quickstart<\/a>)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p class=\"wp-caption-text\">Table 1<\/p>\n<\/div>\n<p>* These tools are very useful if you need to recover corrupted data<\/p>\n<p>Windows installation (either built from scratch or extracted from pre-built archive) consists of following executables mirroring the Linux ones:<\/p>\n<ul>\n<li>redis-benchmark.exe<\/li>\n<li>redis-check-aof.exe<\/li>\n<li>redis-check-dump.exe<\/li>\n<li>redis-cli.exe<\/li>\n<li>redis-server.exe<\/li>\n<\/ul>\n<p>It will save you a lot of time if the folder that contains those executables is appended to Windows <code>PATH<\/code> environment variable.<\/p>\n<h2><a name=\"basic_configuration\"><\/a>7. Basic Configuration<\/h2>\n<p>Redis supports quite sophisticated configuration settings, including persistence, sharding, clustering, replication, \u2026 Some configuration parameters require server to be restarted but some could be tweaked at runtime, using <code>redis-cli<\/code> tool.<\/p>\n<p>But the good thing (for beginners) about Redis configuration is that there is no configuration at all! Redis could be started without single setting provided and will work perfectly fine.<\/p>\n<p>Nevertheless, it would be very useful to glance over some key options (detailed configuration will be covered as we go along with more advanced topics). As an example, we will look at <code>redis.conf<\/code> file from Redis distribution, a good starting point to create your own.<\/p>\n<ul>\n<li><code>daemonize yes | no<\/code> (default: <strong>no<\/strong>)<br \/>\nBy default Redis does not run as a daemon. Use &#8216;yes&#8217; if you need it. Note that Redis will write a pid file in <code>pidfile<\/code> when daemonized.<\/li>\n<li><code>pidfile \/var\/run\/redis.pid<\/code> (default: <strong>\/var\/run\/redis.pid<\/strong>)<br \/>\nWhen running daemonized, Redis writes a pid file in \/var\/run\/redis.pid by default. You can specify a custom pid file location here.<\/li>\n<li><code>port 6379<\/code> (default: <strong>6379<\/strong>)<br \/>\nAccept connections on the specified port, default is 6379. If port 0 is specified Redis will not listen on a TCP socket.<\/li>\n<li><code>bind 192.168.1.100 10.0.0.1<\/code> (default: <strong>commented out, all network interfaces<\/strong>)<br \/>\nBy default Redis listens for connections from all the network interfaces available on the server. It is possible to listen to just one or multiple interfaces using the &#8220;bind&#8221; configuration directive, followed by one or more IP addresses.<\/li>\n<li><code>logfile \/var\/log\/redis.log<\/code> (default: <strong>\u201c\u201d<\/strong>)<br \/>\nSpecify the log file name. Also the empty string can be used to force. Redis to log on the standard output. Note that if you use standard output for logging but daemonize, logs will be sent to \/dev\/null<\/li>\n<li><code>databases 16<\/code> (default: <strong>16<\/strong>)<br \/>\nSet the number of databases. The default database is DB 0, you can select a different one on a per-connection basis using SELECT &lt;dbid&gt; where dbid is a number between 0 and &#8216;databases&#8217;-1<\/li>\n<li><code>timeout 0<\/code> (default: <strong>0<\/strong>)<br \/>\nClose the connection after a client is idle for N seconds (0 to disable)<\/li>\n<li><code>dbfilename dump.rdb<\/code> (default: <strong>dump.rdb<\/strong>)<br \/>\nThe filename where to dump the DB<\/li>\n<li><code>dir \/var\/redis<\/code> (default: <strong>.\/<\/strong>)<br \/>\nThe working directory. The DB will be written inside this directory, with the filename specified above using the &#8216;dbfilename&#8217; configuration directive. The Append Only File will also be created inside this directory.<\/li>\n<\/ul>\n<p>By and large, those are the most useful configuration settings to start from, continuously tuning your Redis server to get most of it.<\/p>\n<h2><a name=\"start_stop_server\"><\/a>8. Starting\/Stopping the Server<\/h2>\n<p>There are several ways to start your Redis server. This simplest one is just by running redis-server (or <code>redis-server.exe<\/code> on Windows) without lspecifying any configuration. Once it\u2019s started, the full-functional Redis server is ready to handle requests, listening on default port <code>6379<\/code>.<\/p>\n<p>The picture below shows a typical output on a Linux console when Redis server starts successfully. The first line warns about absence of the configuration file so the default configuration is talking place. And this is yet another way Redis shines: keeping things as simple as possible makes it really easy to get started, adding more advanced configuration options along the way (when you really need it).<\/p>\n<p><figure id=\"attachment_3597\" aria-describedby=\"caption-attachment-3597\" style=\"width: 1897px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2015\/09\/redis1_pic1.png\"><img decoding=\"async\" class=\"size-full wp-image-3597\" src=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2015\/09\/redis1_pic1.png\" alt=\"Figure 1. Typical console output when Redis started with default configuration\" width=\"1897\" height=\"516\" \/><\/a><figcaption id=\"caption-attachment-3597\" class=\"wp-caption-text\">Figure 1. Typical console output when Redis started with default configuration<\/figcaption><\/figure><\/p>\n<p>A slight variation of the previous flow includes passing configuration file and desired port to listen for incoming connections:<\/p>\n<pre class=\"brush:bash\">redis-server &lt;conf&gt; --port &lt;port&gt;\n<\/pre>\n<p>or on Windows<\/p>\n<pre class=\"brush:bash\">redis-server.exe &lt;conf&gt; --port &lt;port&gt;\n<\/pre>\n<p>The port parameter if specified overrides the one from configuration file. The picture below demonstrates how Redis output may look like in this case.<\/p>\n<p><figure id=\"attachment_3598\" aria-describedby=\"caption-attachment-3598\" style=\"width: 1900px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2015\/09\/redis1_pic2.png\"><img decoding=\"async\" class=\"size-full wp-image-3598\" src=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2015\/09\/redis1_pic2.png\" alt=\"Figure 2. Typical console output when Redis started configuration file and port specified as command line arguments\" width=\"1900\" height=\"487\" \/><\/a><figcaption id=\"caption-attachment-3598\" class=\"wp-caption-text\">Figure 2. Typical console output when Redis started configuration file and port specified as command line arguments<\/figcaption><\/figure><\/p>\n<p>Redis server started by any of those ways could be stopped by pressing <code>Ctrl+C<\/code>.<\/p>\n<p>Advanced Linux users are familiar with init scripts and having Redis server started automatically once system is booted up is quite useful. For this purpose, Redis distribution includes startup script template at <code>utils\/redis_init_script<\/code>. This script could be used as-is and should be copied into standard <code>\/etc\/init.d<\/code> folder. Please notice that by default startup script will try to look for configuration file at <code>\/etc\/redis\/6379.conf<\/code> (to get more details about these recommendations and conventions, please look through <a href=\"http:\/\/redis.io\/topics\/quickstart\">http:\/\/redis.io\/topics\/quickstart<\/a>).<\/p>\n<p>If you would like to start Redis this way (using init scripts), the <code>\/etc\/redis\/6379.conf<\/code> file should be modified a bit in order to have a couple of important configuration options set:<\/p>\n<ul>\n<li><code>daemonize<\/code> should be set to <strong>yes<\/strong> (by default it is set to <strong>no<\/strong>)<\/li>\n<li><code>pidfile<\/code> should be set to <strong>\/var\/run\/redis_6379.pid<\/strong> (which corresponds to the Redis instance port number and configuration file name convention)<\/li>\n<li><code>logfile<\/code> should be set to <strong>\/var\/log\/redis_6379.log<\/strong> (following the same conventions as <code>pidfile<\/code>)<\/li>\n<li><code>dir<\/code> should be set to <strong>\/var\/redis\/6379<\/strong> (following the same conventions as <code>pidfile<\/code> and <code>logfile<\/code>)<\/li>\n<\/ul>\n<p>Please refer to <a href=\"#basic_configuration\">Basic configuration<\/a> section in order to get more detailed explanation what those configuration options mean and their implications.<\/p>\n<h2><a name=\"first_look_redisCLI\"><\/a>9. First look at Redis CLI<\/h2>\n<p>The best and simplest way to explore Redis in full power is its command line interface, <code>redis-cli<\/code> (<code>redis-cli.exe<\/code> on Windows). It\u2019s super easy to use, plus it has brief help for every Redis command and supports navigation over command\u2019s history (by using <code>Up<\/code> and <code>Down<\/code> arrows).<\/p>\n<p>When <code>redis-cli<\/code> starts, it immediately tries to connect to Redis instance guessing it is running on local machine (<code>127.0.0.1<\/code>) and default port (<code>6379<\/code>). If it\u2019s not the case, the tool says you that.<\/p>\n<p><figure id=\"attachment_3599\" aria-describedby=\"caption-attachment-3599\" style=\"width: 668px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2015\/09\/redis1_pic3.png\"><img decoding=\"async\" class=\"size-full wp-image-3599\" src=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2015\/09\/redis1_pic3.png\" alt=\"Figure 3. The redis-cli starts and tries to connect to local Redis instance\" width=\"668\" height=\"69\" \/><\/a><figcaption id=\"caption-attachment-3599\" class=\"wp-caption-text\">Figure 3. The <code>redis-cli<\/code> starts and tries to connect to local Redis instance<\/figcaption><\/figure><\/p>\n<p>Also, <code>redis-cli<\/code> could be used to connect to remote Redis instances when hostname and port are provided as command line arguments:<\/p>\n<pre class=\"brush:bash\">redis-cli -h &lt;hostname&gt; -p &lt;port&gt;\n<\/pre>\n<p>Assuming that our Redis server is running on local machine, let us run <code>redis-cli<\/code> and issue our first command to be sure the server is ready to serve the requests.<\/p>\n<p><figure id=\"attachment_3600\" aria-describedby=\"caption-attachment-3600\" style=\"width: 668px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2015\/09\/redis1_pic4.png\"><img decoding=\"async\" class=\"size-full wp-image-3600\" src=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2015\/09\/redis1_pic4.png\" alt=\"Figure 4. The redis-cli starts and connects to local Redis instance\" width=\"668\" height=\"69\" \/><\/a><figcaption id=\"caption-attachment-3600\" class=\"wp-caption-text\">Figure 4. The <code>redis-cli<\/code> starts and connects to local Redis instance<\/figcaption><\/figure><\/p>\n<p>The <code>PING<\/code> command is the most straightforward, side-effects free way to force Redis server to send <code>PONG<\/code> as a response, confirming it is running and ready. To get a bit more details about what <code>PING<\/code> command is for, <code>HELP PING<\/code> shows a quick summary of that.<\/p>\n<p><figure id=\"attachment_3601\" aria-describedby=\"caption-attachment-3601\" style=\"width: 583px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2015\/09\/redis1_pic5.png\"><img decoding=\"async\" class=\"size-full wp-image-3601\" src=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2015\/09\/redis1_pic5.png\" alt=\"Figure 5. Issuing PING command from redis-cli and verifying server responds with PONG\" width=\"583\" height=\"186\" \/><\/a><figcaption id=\"caption-attachment-3601\" class=\"wp-caption-text\">Figure 5. Issuing <code>PING<\/code> command from <code>redis-cli<\/code> and verifying server responds with <code>PONG<\/code><\/figcaption><\/figure><\/p>\n<p>Despite its simplicity, <code>redis-cli<\/code> is extremely useful. It allows not only sending command to Redis server but also to change configuration, monitor current activity and much, much more.<\/p>\n<h2><a name=\"whats_next\"><\/a>10. What\u2019s Next<\/h2>\n<p>In next section, we will spend much more time with Redis CLI trying all different commands and covering all Redis rich data structures.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This article is part of our Academy Course titled Redis a NoSQL key-value store. This is a crash course on Redis. You will learn how to install Redis and start up the server. Additionally, you will mess around with the Redis command line. More advanced topics follow, such as replication, sharding and clustering, while the &hellip;<\/p>\n","protected":false},"author":141,"featured_media":223,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[113,117],"class_list":["post-43930","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-enterprise-java","tag-nosql","tag-redis"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Redis Installation - Java Code Geeks<\/title>\n<meta name=\"description\" content=\"This article is part of our Academy Course titled Redis a NoSQL key-value store. This is a crash course on Redis. You will learn how to install Redis and\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.javacodegeeks.com\/2015\/09\/redis-installation.html\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Redis Installation - Java Code Geeks\" \/>\n<meta property=\"og:description\" content=\"This article is part of our Academy Course titled Redis a NoSQL key-value store. This is a crash course on Redis. You will learn how to install Redis and\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.javacodegeeks.com\/2015\/09\/redis-installation.html\" \/>\n<meta property=\"og:site_name\" content=\"Java Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/javacodegeeks\" \/>\n<meta property=\"article:published_time\" content=\"2015-09-21T11:18:43+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-12-06T12:50:39+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/redis-logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Andrey Redko\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:site\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Andrey Redko\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2015\\\/09\\\/redis-installation.html#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2015\\\/09\\\/redis-installation.html\"},\"author\":{\"name\":\"Andrey Redko\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/771a6504862edc45322776832cbce413\"},\"headline\":\"Redis Installation\",\"datePublished\":\"2015-09-21T11:18:43+00:00\",\"dateModified\":\"2023-12-06T12:50:39+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2015\\\/09\\\/redis-installation.html\"},\"wordCount\":2061,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2015\\\/09\\\/redis-installation.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/redis-logo.jpg\",\"keywords\":[\"NoSQL\",\"Redis\"],\"articleSection\":[\"Enterprise Java\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2015\\\/09\\\/redis-installation.html#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2015\\\/09\\\/redis-installation.html\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2015\\\/09\\\/redis-installation.html\",\"name\":\"Redis Installation - Java Code Geeks\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2015\\\/09\\\/redis-installation.html#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2015\\\/09\\\/redis-installation.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/redis-logo.jpg\",\"datePublished\":\"2015-09-21T11:18:43+00:00\",\"dateModified\":\"2023-12-06T12:50:39+00:00\",\"description\":\"This article is part of our Academy Course titled Redis a NoSQL key-value store. This is a crash course on Redis. You will learn how to install Redis and\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2015\\\/09\\\/redis-installation.html#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2015\\\/09\\\/redis-installation.html\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2015\\\/09\\\/redis-installation.html#primaryimage\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/redis-logo.jpg\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/redis-logo.jpg\",\"width\":150,\"height\":150},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2015\\\/09\\\/redis-installation.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Java\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/category\\\/java\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Enterprise Java\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/category\\\/java\\\/enterprise-java\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Redis Installation\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"name\":\"Java Code Geeks\",\"description\":\"Java Developers Resource Center\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"alternateName\":\"JCG\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.javacodegeeks.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/javacodegeeks\",\"https:\\\/\\\/x.com\\\/javacodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/771a6504862edc45322776832cbce413\",\"name\":\"Andrey Redko\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/16419ce8394173028eddaeb992859862bab50cfcf74589fa9bb9a3dd8bb27518?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/16419ce8394173028eddaeb992859862bab50cfcf74589fa9bb9a3dd8bb27518?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/16419ce8394173028eddaeb992859862bab50cfcf74589fa9bb9a3dd8bb27518?s=96&d=mm&r=g\",\"caption\":\"Andrey Redko\"},\"description\":\"Andriy is a well-grounded software developer with more then 12 years of practical experience using Java\\\/EE, C#\\\/.NET, C++, Groovy, Ruby, functional programming (Scala), databases (MySQL, PostgreSQL, Oracle) and NoSQL solutions (MongoDB, Redis).\",\"sameAs\":[\"http:\\\/\\\/aredko.blogspot.com\\\/\",\"http:\\\/\\\/ca.linkedin.com\\\/in\\\/aredko\"],\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/author\\\/andrey-redko\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Redis Installation - Java Code Geeks","description":"This article is part of our Academy Course titled Redis a NoSQL key-value store. This is a crash course on Redis. You will learn how to install Redis and","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.javacodegeeks.com\/2015\/09\/redis-installation.html","og_locale":"en_US","og_type":"article","og_title":"Redis Installation - Java Code Geeks","og_description":"This article is part of our Academy Course titled Redis a NoSQL key-value store. This is a crash course on Redis. You will learn how to install Redis and","og_url":"https:\/\/www.javacodegeeks.com\/2015\/09\/redis-installation.html","og_site_name":"Java Code Geeks","article_publisher":"https:\/\/www.facebook.com\/javacodegeeks","article_published_time":"2015-09-21T11:18:43+00:00","article_modified_time":"2023-12-06T12:50:39+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/redis-logo.jpg","type":"image\/jpeg"}],"author":"Andrey Redko","twitter_card":"summary_large_image","twitter_creator":"@javacodegeeks","twitter_site":"@javacodegeeks","twitter_misc":{"Written by":"Andrey Redko","Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.javacodegeeks.com\/2015\/09\/redis-installation.html#article","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/2015\/09\/redis-installation.html"},"author":{"name":"Andrey Redko","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/771a6504862edc45322776832cbce413"},"headline":"Redis Installation","datePublished":"2015-09-21T11:18:43+00:00","dateModified":"2023-12-06T12:50:39+00:00","mainEntityOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2015\/09\/redis-installation.html"},"wordCount":2061,"commentCount":2,"publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2015\/09\/redis-installation.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/redis-logo.jpg","keywords":["NoSQL","Redis"],"articleSection":["Enterprise Java"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.javacodegeeks.com\/2015\/09\/redis-installation.html#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.javacodegeeks.com\/2015\/09\/redis-installation.html","url":"https:\/\/www.javacodegeeks.com\/2015\/09\/redis-installation.html","name":"Redis Installation - Java Code Geeks","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2015\/09\/redis-installation.html#primaryimage"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2015\/09\/redis-installation.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/redis-logo.jpg","datePublished":"2015-09-21T11:18:43+00:00","dateModified":"2023-12-06T12:50:39+00:00","description":"This article is part of our Academy Course titled Redis a NoSQL key-value store. This is a crash course on Redis. You will learn how to install Redis and","breadcrumb":{"@id":"https:\/\/www.javacodegeeks.com\/2015\/09\/redis-installation.html#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.javacodegeeks.com\/2015\/09\/redis-installation.html"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/2015\/09\/redis-installation.html#primaryimage","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/redis-logo.jpg","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/redis-logo.jpg","width":150,"height":150},{"@type":"BreadcrumbList","@id":"https:\/\/www.javacodegeeks.com\/2015\/09\/redis-installation.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.javacodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"Java","item":"https:\/\/www.javacodegeeks.com\/category\/java"},{"@type":"ListItem","position":3,"name":"Enterprise Java","item":"https:\/\/www.javacodegeeks.com\/category\/java\/enterprise-java"},{"@type":"ListItem","position":4,"name":"Redis Installation"}]},{"@type":"WebSite","@id":"https:\/\/www.javacodegeeks.com\/#website","url":"https:\/\/www.javacodegeeks.com\/","name":"Java Code Geeks","description":"Java Developers Resource Center","publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"alternateName":"JCG","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.javacodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.javacodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/www.javacodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/javacodegeeks","https:\/\/x.com\/javacodegeeks"]},{"@type":"Person","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/771a6504862edc45322776832cbce413","name":"Andrey Redko","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/16419ce8394173028eddaeb992859862bab50cfcf74589fa9bb9a3dd8bb27518?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/16419ce8394173028eddaeb992859862bab50cfcf74589fa9bb9a3dd8bb27518?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/16419ce8394173028eddaeb992859862bab50cfcf74589fa9bb9a3dd8bb27518?s=96&d=mm&r=g","caption":"Andrey Redko"},"description":"Andriy is a well-grounded software developer with more then 12 years of practical experience using Java\/EE, C#\/.NET, C++, Groovy, Ruby, functional programming (Scala), databases (MySQL, PostgreSQL, Oracle) and NoSQL solutions (MongoDB, Redis).","sameAs":["http:\/\/aredko.blogspot.com\/","http:\/\/ca.linkedin.com\/in\/aredko"],"url":"https:\/\/www.javacodegeeks.com\/author\/andrey-redko"}]}},"_links":{"self":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/43930","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/users\/141"}],"replies":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/comments?post=43930"}],"version-history":[{"count":0,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/43930\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media\/223"}],"wp:attachment":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media?parent=43930"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/categories?post=43930"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/tags?post=43930"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}