1. 安装依赖包
首先,安装Redis所依赖的TCL工具包。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
# 下载
wget http:
//downloads
.sourceforge.net
/tcl/tcl8
.6.1-src.
tar
.gz
# 解压缩
tar
-xf tcl8.6.0-html.
tar
.gz
# 配置安装
cd
unix &&
.
/configure
--prefix=
/usr
\
--without-tzdata \
--mandir=
/usr/share/man
\
$([ $(
uname
-m) = x86_64 ] &&
echo
--
enable
-64bit) &&
make
&&
sed
-e
"s@^\(TCL_SRC_DIR='\).*@\1/usr/include'@"
\
-e
"/TCL_B/s@='\(-L\)\?.*unix@='\1/usr/lib@"
\
-i tclConfig.sh
# 测试make是否成功
make
test
# root用户登录,执行下面命令
make
install
&&
make
install
-private-headers &&
ln
-
v
-sf tclsh8.6
/usr/bin/tclsh
&&
chmod
-
v
755
/usr/lib/libtcl8
.6.so
|
有关TCL的更详细的说明,请见 http://www.linuxfromscratch.org/blfs/view/svn/general/tcl.html
2. 安装Redis
下面,就可以安装Redis了。
1
2
3
4
5
6
7
|
# 下载redis稳定版,解压缩并安装
wget http:
//download
.redis.io
/redis-stable
.
tar
.gz
tar
xzf redis-3.0.0.
tar
.gz
cd
<span><
/span
>redis-3.0.0<span><
/span
>
make
# 测试make是否成功
make
test
make
install
|
然后可以进入redis目录,尝试启动redis
1
|
.
/src/redis-server
redis.conf
|
至此redis安装已经完成了。
在make test中可能会遇到时间相关的失败,比如
Executing test client: NOREPLICAS Not enough good slaves to write..
这种情况下,可以修改文件tests/integration/replication-2.tcl,将after 1000改为after 10000以延长等待时间。
更多关于Redis安装的信息,请见 http://redis.io/download
3. C客户端hiredis
如果想要使用C程序调用Redis,安装官方C客户端hiredis。方便的是,目前的redis下载包中已经包含了hiredis的安装包,只需要到redis安装目录下,执行以下命令即可:
1
2
3
4
5
6
7
8
|
# 进入hiredis文件夹并安装
cd
/deps/hiredis
make
# 测试make是否成功
make
test
# 使用root用户,安装动态文件文件,并更新
make
install
/sbin/ldconfig
/usr/local/lib
|
可以执行hiredis文件夹下的hiredis-example来测试hiredis是否成功安装。
1
|
.
/hiredis-example
|
1
2
|
cc example.c -lhiredis
.
/a
.out
|
关于hiredis的更多说明,可以参照 https://github.com/redis/hiredis
4. Python客户端redis-py
redis的Python客户端目前尚不存在官方版本,但是官方推荐的为redis-py。在安装完redis服务器后,执行下面命令安装redis-py。
1
|
pip
install
redis
|
安装Hiredis:
1
|
pip
install
hiredis
|
关于redis-py的更多说明,可以参照 https://github.com/andymccurdy/redis-py
5. 高级设置
最后,配置生产环境,并设置redis的开机启动。
首先,建立存放redis配置文件和持久化RDB数据的文件夹:
1
2
|
sudo
mkdir
/etc/redis
sudo
mkdir
/var/redis
|
1
|
sudo
cp
utils
/redis_init_script
/etc/init
.d
/redis_6379
|
1
|
sudo
cp
redis.conf
/etc/redis/6379
.conf
|
1
|
sudo
mkdir
/var/redis/6379
|
按下面要求修改配置文件:
- 设置 demonize 为 yes(默认是no)
- 设置 pidfile 为 /var/run/redis_6379.pid
- 设置 loglevel 为相应级别
- 设置 logfile 为 /var/log/redis_6379.log
- 设置 dir 为 /var/redis/6379
最后,设置redis实例的开机启动。在Ubuntu上直接运行:
1
|
sudo
update-rc.d redis_6379 defaults
|
1
2
3
4
5
6
7
8
9
10
|
# Provides: redis-server
# Required-Start: $syslog
# Required-Stop: $syslog
# Should-Start: $local_fs
# Should-Stop: $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: redis-server - Persistent key-value db
# Description: redis-server - Persistent key-value db
### END INIT INFO
|
1
|
sudo
chkconfig --add redis_6379
|
关于配置的更多内容,参照 http://redis.io/topics/quickstart
持久化内存问题:
Redis在持久化时会重新启动一个进程,占用的内存资源与Redis实例相同,因此可能会造成内存不足,产生难以预知的后果。为了防止该事件发生,可以将overcommit_memory设置为1。
设置方法:
1. 修改文件/etc/sysctl.conf,添加
vm.overcommit_memory = 1
然后重新启动。
2. 执行命令sysctl vm.overcommit_memory=1
这样在下次启动时会恢复默认设置,因此仍然需要在/etc/sysctl.conf中添加。