参考文章:
http://blog.csdn.net/miyatang/article/details/47257209
http://futeng.iteye.com/blog/2071867
http://blog.csdn.net/zyz511919766/article/details/42268219
windows 下载:
下载地址: http://redis.io/download
下载后使用 xftp 上传到 Linux 服务器
Linux 命令下载:
wget http://download.redis.io/releases/redis-3.0.3.tar.gz
解压:
tar xzf redis-3.0.3.tar.gz
进入 redis 目录:
cd redis-3.0.3
检查环境:
./runtest
提示:You need tcl 8.5 or newer in order to run the Redis test
安装 tcl:
yum install tcl
(服务器需要连接外网)
编译:
make
make 报错如下:(make 是用来编译的,从 Makefile 中读取指令,安装到指定的位置)
make[3]: gcc:命令未找到
make[3]: *** [net.o] 错误 127
make[3]: Leaving directory `/opt/redis-3.0.3/deps/hiredis'
make[2]: *** [hiredis] 错误 2
make[2]: Leaving directory `/opt/redis-3.0.3/deps'
make[1]: [persist-settings] 错误 2 (忽略)
CC adlist.o
/bin/sh: cc: command not found
make[1]: *** [adlist.o] 错误 127
make[1]: Leaving directory `/opt/redis-3.0.3/src'
make: *** [all] 错误 2
安装 gcc:
yum install gcc
(服务器需要连接外网,cc 是 gcc 的连接。gcc 是编译器.)
继续编译:
make
make 报错如下:
cd src && make all
make[1]: Entering directory `/opt/redis-3.0.3/src'
CC adlist.o
在包含自 adlist.c:34 的文件中:
zmalloc.h:50:31: 错误:jemalloc/jemalloc.h:没有那个文件或目录
zmalloc.h:55:2: 错误:#error "Newer version of jemalloc required"
make[1]: *** [adlist.o] 错误 1
make[1]: Leaving directory `/opt/redis-3.0.3/src'
make: *** [all] 错误 2
参考网址:http://www.phperz.com/article/14/1219/42002.html,
重新编译:
make MALLOC=libc
编译成功
安装:
make instal
redis 默认安装在 ‘/usr/local/bin’(make install 是用来安装的,它也从 Makefile 中读取指令,安装到指定的位置。)
将配置文件拷贝到/etc 文件夹:
cp redis.conf /etc/
执行如下命令,这样就不用在执行时加上./了,而且可以在任何地方执行:
cp redis-benchmark redis-cli redis-server /usr/bin/ #
进入配置文件的文件夹:
cd etc/
打开配置文件:
vi redis.conf
常用配置如下:
#修改daemonize为yes,即默认以后台程序方式运行(还记得前面手动使用&号强制后台运行吗)。
daemonize no
#可修改默认监听端口,如果改了端口启动时需要指定端口号,“ redis-cli -p 6380”
port 6379
#修改生成默认日志文件位置
logfile "/home/Book/logs/redis.log"
#配置持久化文件存放位置
dir /home/Book/data/redisData
#设置redis的密码,默认情况下“requirepass foobared”是被注释的,去掉注释,将“ foobared”改为要设置的密码,重启redis后生效
requirepass foobared
进入安装路径
cd /usr/local/bin
启动 redis(加上&
号使 redis 以后台程序方式运行)
./redis-server &
检测后台进程是否存在
ps -ef |grep redis
检测 6379 端口是否在监听
netstat -lntp | grep 6379
使用redis-cli
客户端检测连接是否正常
./redis-cli
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> set key "hello world"
OK
127.0.0.1:6379> get key
"hello world"
进入安装路径
cd /usr/local/bin
启动 redis
./redis-server /etc/redis.conf
使用客户端
redis-cli shutdown
因为 Redis 可以妥善处理 SIGTERM 信号,所以直接 kill -9 也是可以的
kill -9 PID
启动脚本 redis_init_script 位于第 2 步中解压的安装包的/utils/文件夹下,内容如下:
#浏览启动脚本,发现redis习惯性用监听的端口名作为配置文件等命名,我们后面也遵循这个约定。
#redis服务器监听的端口
REDISPORT=6379
#服务端所处位置,在make install后默认存放与`/usr/local/bin/redis-server`,如果未make install则需要修改该路径,下同。
EXEC=/usr/local/bin/redis-server
#客户端位置
CLIEXEC=/usr/local/bin/redis-cli
#Redis的PID文件位置
PIDFILE=/var/run/redis_${REDISPORT}.pid
#配置文件位置,需要修改
CONF="/etc/redis/${REDISPORT}.conf"
……
根据启动脚本 redis_init_script 的要求,将修改好的配置文件以端口为名复制一份到指定目录。需使用 root 用户
创建文件夹 redis
mkdir /etc/redis
复制配置文件到指定目录
cp redis.conf /etc/redis/6379.conf
将启动脚本 redis_init_script 复制到/etc/init.d 目录下,并将启动脚本命名为 redisd(通常都以 d 结尾表示是后台自启动服务)
cp redis_init_script /etc/init.d/redisd
设置为开机自启动
chkconfig redisd on
会报 “redisd 服务不支持 chkconfig”,参考文章http://www.cnblogs.com/goodspeed/archive/2012/10/18/2729615.html,在启动脚本开头添加如下两行注释以修改其运行级别:
#!/bin/sh
# chkconfig: 2345 90 10
# description: Redis is a persistent key-value database
再次尝试设置开机自启动
chkconfig redisd on
重启机器,查看 redis 服务是否自启动
服务未启动,经过排查是配置文件有问题,从别处重新拷贝了一个配置文件替换后,可以启动。
查看 redis 的 log 推测应该是我设置的持久化路径有问题导致的,但是没有具体去验证。
以上设置完成后,可以直接通过下面的方式启动和停止 redis。
启动 redis:
service redisd start
停止 redis:
service redisd stop
在第 3 步 “配置” 中提到通过修改配置文件的方式配置认证密码,本例中我们设置的密码是 123456
#设置redis密码
requirepass 123456
设置密码后,登录 redis 有两种方式:
方式一:
[root@Clean-CentOS-X64 bin]# redis-cli
127.0.0.1:6379> auth 123456
OK
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) "123456"
127.0.0.1:6379>
方式二:
[root@Clean-CentOS-X64 bin]# redis-cli -a 123456
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) "123456"
127.0.0.1:6379>
此外,还可以通过命令设置 redis 的密码:
[root@Clean-CentOS-X64 bin]# redis-cli -a 123456
127.0.0.1:6379> config set requirepass book
OK
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) "book"
127.0.0.1:6379>
注意:
通过命令设置密码后,如果重启 redis 服务,密码会恢复为配置文件中设置的密码。
如果设置有主从同步,master 配置了密码则 slave 也要配置相应的密码参数
PS:第一次写,感觉写技术贴好不容易啊~~~~~写的不好请多包涵