新手区 Redis 安装和配置

我叫不迷糊 · 2015年12月30日 · 最后由 tianjinjun 回复于 2017年03月09日 · 3715 次阅读

参考文章:
http://blog.csdn.net/miyatang/article/details/47257209
http://futeng.iteye.com/blog/2071867
http://blog.csdn.net/zyz511919766/article/details/42268219

1、下载

windows 下载:
下载地址: http://redis.io/download
下载后使用 xftp 上传到 Linux 服务器

Linux 命令下载:

wget http://download.redis.io/releases/redis-3.0.3.tar.gz

2、安装

解压:

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/ #

3、配置

进入配置文件的文件夹:

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

4、直接启动

进入安装路径

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"

5、指定配置文件启动

进入安装路径

cd /usr/local/bin

启动 redis

./redis-server /etc/redis.conf

6、停止

使用客户端

redis-cli shutdown

因为 Redis 可以妥善处理 SIGTERM 信号,所以直接 kill -9 也是可以的

kill -9 PID

7、设置开机自启动

启动脚本 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

8、配置 redis 的认证密码

在第 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:第一次写,感觉写技术贴好不容易啊~~~~~写的不好请多包涵

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 3 条回复 时间 点赞
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册