2015-02-13 13:55:53 +00:00
|
|
|
This README is just a fast "quick start" document. You can find more detailed documentation at http://redis.io.
|
2010-08-31 09:42:52 +00:00
|
|
|
|
|
|
|
Building Redis
|
|
|
|
--------------
|
2012-04-21 10:08:26 +00:00
|
|
|
|
|
|
|
Redis can be compiled and used on Linux, OSX, OpenBSD, NetBSD, FreeBSD.
|
2015-02-13 13:55:09 +00:00
|
|
|
We support big endian and little endian architectures, and both 32 bit
|
|
|
|
and 64 bit systems.
|
2012-04-21 10:08:26 +00:00
|
|
|
|
|
|
|
It may compile on Solaris derived systems (for instance SmartOS) but our
|
|
|
|
support for this platform is "best effort" and Redis is not guaranteed to
|
|
|
|
work as well as in Linux, OSX, and *BSD there.
|
2010-08-31 09:42:52 +00:00
|
|
|
|
|
|
|
It is as simple as:
|
|
|
|
|
|
|
|
% make
|
|
|
|
|
|
|
|
You can run a 32 bit Redis binary using:
|
|
|
|
|
|
|
|
% make 32bit
|
|
|
|
|
2011-10-18 18:28:07 +00:00
|
|
|
After building Redis is a good idea to test it, using:
|
2010-08-31 09:42:52 +00:00
|
|
|
|
|
|
|
% make test
|
|
|
|
|
2015-01-08 15:35:05 +00:00
|
|
|
Fixing build problems with dependencies or cached build options
|
2015-01-08 15:07:25 +00:00
|
|
|
—--------
|
2015-02-13 13:55:09 +00:00
|
|
|
Redis has some dependencies which are included into the `deps` directory.
|
|
|
|
`make` does not rebuild dependencies automatically, even if something in the
|
2015-01-08 15:35:05 +00:00
|
|
|
source code of dependencies is changes.
|
|
|
|
|
|
|
|
When you update the source code with `git pull` or when code inside the
|
|
|
|
dependencies tree is modified in any other way, make sure to use the following
|
|
|
|
command in order to really clean everything and rebuild from scratch:
|
|
|
|
|
|
|
|
make distclean
|
|
|
|
|
|
|
|
This will clean: jemalloc, lua, hiredis, linenoise.
|
|
|
|
|
|
|
|
Also if you force certain build options like 32bit target, no C compiler
|
|
|
|
optimizations (for debugging purposes), and other similar build time options,
|
|
|
|
those options are cached indefinitely until you issue a "make distclean"
|
|
|
|
command.
|
2015-01-08 15:07:25 +00:00
|
|
|
|
2013-05-08 07:48:38 +00:00
|
|
|
Fixing problems building 32 bit binaries
|
|
|
|
---------
|
|
|
|
|
|
|
|
If after building Redis with a 32 bit target you need to rebuild it
|
|
|
|
with a 64 bit target, or the other way around, you need to perform a
|
|
|
|
"make distclean" in the root directory of the Redis distribution.
|
|
|
|
|
|
|
|
In case of build errors when trying to build a 32 bit binary of Redis, try
|
|
|
|
the following steps:
|
|
|
|
|
|
|
|
* Install the packages libc6-dev-i386 (also try g++-multilib).
|
|
|
|
* Try using the following command line instead of "make 32bit":
|
|
|
|
|
|
|
|
make CFLAGS="-m32 -march=native" LDFLAGS="-m32"
|
2011-10-18 18:28:07 +00:00
|
|
|
|
|
|
|
Allocator
|
|
|
|
---------
|
|
|
|
|
2011-11-15 21:28:57 +00:00
|
|
|
Selecting a non-default memory allocator when building Redis is done by setting
|
|
|
|
the `MALLOC` environment variable. Redis is compiled and linked against libc
|
|
|
|
malloc by default, with the exception of jemalloc being the default on Linux
|
|
|
|
systems. This default was picked because jemalloc has proven to have fewer
|
|
|
|
fragmentation problems than libc malloc.
|
2011-10-18 18:28:07 +00:00
|
|
|
|
2011-11-15 21:28:57 +00:00
|
|
|
To force compiling against libc malloc, use:
|
2011-10-18 18:28:07 +00:00
|
|
|
|
2011-11-15 21:28:57 +00:00
|
|
|
% make MALLOC=libc
|
2011-10-18 18:28:07 +00:00
|
|
|
|
2011-11-15 21:28:57 +00:00
|
|
|
To compile against jemalloc on Mac OS X systems, use:
|
2011-10-18 18:28:07 +00:00
|
|
|
|
2011-11-15 21:28:57 +00:00
|
|
|
% make MALLOC=jemalloc
|
2011-10-18 18:28:07 +00:00
|
|
|
|
|
|
|
Verbose build
|
|
|
|
-------------
|
|
|
|
|
|
|
|
Redis will build with a user friendly colorized output by default.
|
|
|
|
If you want to see a more verbose output use the following:
|
|
|
|
|
2011-10-23 10:28:31 +00:00
|
|
|
% make V=1
|
2010-10-21 22:06:44 +00:00
|
|
|
|
2010-08-31 09:42:52 +00:00
|
|
|
Running Redis
|
|
|
|
-------------
|
|
|
|
|
|
|
|
To run Redis with the default configuration just type:
|
|
|
|
|
|
|
|
% cd src
|
|
|
|
% ./redis-server
|
|
|
|
|
|
|
|
If you want to provide your redis.conf, you have to run it using an additional
|
|
|
|
parameter (the path of the configuration file):
|
|
|
|
|
|
|
|
% cd src
|
|
|
|
% ./redis-server /path/to/redis.conf
|
|
|
|
|
2011-12-01 14:40:49 +00:00
|
|
|
It is possible to alter the Redis configuration passing parameters directly
|
|
|
|
as options using the command line. Examples:
|
|
|
|
|
|
|
|
% ./redis-server --port 9999 --slaveof 127.0.0.1 6379
|
|
|
|
% ./redis-server /etc/redis/6379.conf --loglevel debug
|
|
|
|
|
|
|
|
All the options in redis.conf are also supported as options using the command
|
|
|
|
line, with exactly the same name.
|
|
|
|
|
2010-08-31 09:42:52 +00:00
|
|
|
Playing with Redis
|
|
|
|
------------------
|
|
|
|
|
|
|
|
You can use redis-cli to play with Redis. Start a redis-server instance,
|
|
|
|
then in another terminal try the following:
|
|
|
|
|
|
|
|
% cd src
|
|
|
|
% ./redis-cli
|
|
|
|
redis> ping
|
|
|
|
PONG
|
|
|
|
redis> set foo bar
|
|
|
|
OK
|
|
|
|
redis> get foo
|
|
|
|
"bar"
|
|
|
|
redis> incr mycounter
|
|
|
|
(integer) 1
|
|
|
|
redis> incr mycounter
|
|
|
|
(integer) 2
|
|
|
|
redis>
|
|
|
|
|
2015-02-13 13:55:09 +00:00
|
|
|
You can find the list of all the available commands at http://redis.io/commands.
|
2010-08-31 09:42:52 +00:00
|
|
|
|
2011-10-23 10:28:31 +00:00
|
|
|
Installing Redis
|
|
|
|
-----------------
|
|
|
|
|
|
|
|
In order to install Redis binaries into /usr/local/bin just use:
|
|
|
|
|
|
|
|
% make install
|
|
|
|
|
2015-02-13 13:55:09 +00:00
|
|
|
You can use `make PREFIX=/some/other/directory install` if you wish to use a
|
2011-10-23 10:28:31 +00:00
|
|
|
different destination.
|
|
|
|
|
|
|
|
Make install will just install binaries in your system, but will not configure
|
|
|
|
init scripts and configuration files in the appropriate place. This is not
|
|
|
|
needed if you want just to play a bit with Redis, but if you are installing
|
|
|
|
it the proper way for a production system, we have a script doing this
|
|
|
|
for Ubuntu and Debian systems:
|
|
|
|
|
|
|
|
% cd utils
|
2014-03-15 13:43:50 +00:00
|
|
|
% ./install_server.sh
|
2011-10-23 10:28:31 +00:00
|
|
|
|
|
|
|
The script will ask you a few questions and will setup everything you need
|
|
|
|
to run Redis properly as a background daemon that will start again on
|
|
|
|
system reboots.
|
|
|
|
|
|
|
|
You'll be able to stop and start Redis using the script named
|
2015-02-13 13:55:09 +00:00
|
|
|
`/etc/init.d/redis_<portnumber>`, for instance `/etc/init.d/redis_6379`.
|
2011-10-23 10:28:31 +00:00
|
|
|
|
2012-11-08 17:43:20 +00:00
|
|
|
Code contributions
|
|
|
|
---
|
|
|
|
|
|
|
|
Note: by contributing code to the Redis project in any form, including sending
|
|
|
|
a pull request via Github, a code fragment or patch via private email or
|
|
|
|
public discussion groups, you agree to release your code under the terms
|
|
|
|
of the BSD license that you can find in the COPYING file included in the Redis
|
|
|
|
source distribution.
|
|
|
|
|
|
|
|
Please see the CONTRIBUTING file in this source distribution for more
|
|
|
|
information.
|
|
|
|
|
2010-08-31 09:42:52 +00:00
|
|
|
Enjoy!
|