Redis安装与配置
一、下载redis
下载页面:http://download.redis.io/releases/
选择需要下载的版本,复制链接,比如http://download.redis.io/releases/redis-4.0.14.tar.gz
执行命令下载redis
[root@centos ~]# cd /usr/local/src/ [root@centos src]# wget http://download.redis.io/releases/redis-4.0.14.tar.gz ......... 下载过程已忽略 ........ [root@centos src]# ls redis-4.0.14.tar.gz
二、解压
解压到/usr/local目录下,并将目录名重命名,去掉版本号。
[root@centos src]# ls redis-4.0.14.tar.gz [root@centos src]# tar -zxf redis-4.0.14.tar.gz -C /usr/local [root@centos src]# cd /usr/local/ [root@centos local]# ls bin etc games include java lib lib64 libexec mysql redis-4.0.14 sbin share src zookeeper [root@centos local]# mv redis-4.0.14 redis
三、安装编译所需的一些软件(非必需操作)
如果操作系统已经安装了一些gcc、g++...以及一些动态库,那么可以忽略这一步
# centos使用下面命令 yum groupinstall "Development Tools" # ubuntu使用下面命令 apt-get install -y build-essential
四、执行编译操作
进入到redis文件目录,进行make,然后进入redis/src目录下进行make install,即可完成安装,指定的PREFIX表示将redis安装到该路径下。
[root@centos ~]# cd /usr/local/redis/ [root@centos redis]# ls 00-RELEASENOTES CONTRIBUTING deps Makefile README.md runtest runtest-sentinel src utils BUGS COPYING INSTALL MANIFESTO redis.conf runtest-cluster sentinel.conf tests [root@centos redis]# make [root@centos redis]# cd src/ [root@centos src]# make install PREFIX=/usr/local/redis CC Makefile.dep Hint: It's a good idea to run 'make test' ;) INSTALL install INSTALL install INSTALL install INSTALL install INSTALL install
make install既可以在redis目录下,也可以在redis/src目录下去执行。
查看/usr/local/redis目录,其中有一个bin目录,包含了可执行文件(脚本):
[root@centos ~]# cd /usr/local/redis [root@centos redis]# ls bin [root@centos redis]# ls bin/ redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-sentinel redis-server
六、简单配置redis
配置文件默认是在解压后的redis目录下,文件名为redis.conf,首先在redis的安装目录下创建一个目录来存放redis配置文件:
[root@centos ~]# cd /usr/local/redis [root@centos redis]# ls bin [root@centos redis]# mkdir etc [root@centos redis]# ls bin etc [root@centos redis]# mv /usr/local/src/redis-4.0.14/redis.conf /usr/local/redis/etc/
打开配置文件,可以看到很多配置项,可以根据需求进行配置。
port 6379 pidfile /var/run/redis_6379.pid daemonize no databases 16 save 900 1 save 300 10 save 60 10000 rdbcompression yes ...........
六、redis启动与登录
6.1、启动redis服务器
启动redis,需要使用redis-server命令(就是redis/bin目录下的redis-server脚本)
需要注意的是,启动redis,可以单纯的使用redis-server命令,这样会使用默认的配置文件(默认的配置文件是指与redis-server相同目录的redis.conf);
如果需要自己执行配置文件,那么就需要在redis-server后面追加配置文件路径。
# 使用默认的配置文件启动redis服务器(/usr/local/redis/bin/redis.conf) [root@centos ~]# /usr/local/redis/bin/redis-server # 明确指定redis启动时使用的配置文件 [root@centos ~]# /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
上面两条命令执行后,如果没有意外,应该可以看到下面图案,表示启动成功了
注意,这个时候不要将窗口关闭,或者按ctrl + C,因为这样关闭redis-server。
如果需要将redis的运行模式改为后台运行,可以修改配置中的daemonize选项,默认的是为no,将其设置为yes即可
保存配置文件后,需要重启redis,修改的配置才会生效。在启动redis服务器,指定配置文件路径,redis服务器就会以后台方式运行
[root@centos ~]# /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf 4789:C 22 Dec 22:28:10.235 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo 4789:C 22 Dec 22:28:10.235 # Redis version=4.0.14, bits=64, commit=00000000, modified=0, pid=4789, just started 4789:C 22 Dec 22:28:10.235 # Configuration loaded [root@centos ~]# ps -ef | grep 'redis' root 4790 1 0 22:28 ? 00:00:00 /usr/local/redis/bin/redis-server 127.0.0.1:6379 root 4796 1446 0 22:32 pts/0 00:00:00 grep redis
6.2、使用客户端登录服务器
当redis服务器启动之后,我们就可以利用redis提供的客户端脚本,来登录到redis服务器。
客户端脚本在redis/src目录下,使用方式很简单,如下图
[root@centos ~]# /usr/local/redis/bin/redis-cli -h 127.0.0.1 -p 6379 127.0.0.1:6379>
-h指定主机,-p指定端口,当不指定-h,-p时,默认是本机的6379端口。
redis-cli有很多的可选参数,可以使用/usr/local/redis/bin/redis-cli --help来查看。
6.3、连接redis-server出现connection refused
当我们尝试使用连接非本机的redis服务器时,可能会出现Connection refused的情况,如下:
[root@centos ~]# /usr/local/redis/bin/redis-cli -h 192.168.1.3 -p 6379 Could not connect to Redis at 192.168.1.3:6379: Connection refused Could not connect to Redis at 192.168.1.3:6379: Connection refused not connected>
需要修改几个地方:1、修改redis服务器配置。2、防火墙放行6379端口;
首先查看redis服务器配置中的bind配置项,如果是配置的是127.0.0.1,表示只能127.0.0.1这个ip可以连接redis服务器。
如果需要允许其他机器登录,那么可以设置bind为客户端机器的ip即可,多个ip使用空格分隔;
如果对登陆的机器不做限制,可以将bind配置项删除(或者注释掉)。
# 注释掉bind,表示对登录的机器ip不做限制 # bind 127.0.0.1
除了设置redis服务器的bind配置,还需要开放redis服务器防火墙的6379端口,只需要在redis服务器上执行下面命令
[root@centos ~]# iptables -A INPUT -p tcp -m tcp --dport 6379 -j ACCEPT [root@centos ~]# service iptables restart iptables: Setting chains to policy ACCEPT: filter [ OK ] iptables: Flushing firewall rules: [ OK ] iptables: Unloading modules: [ OK ] iptables: Applying firewall rules: [ OK ]
然后进行测试:
[root@centos ~]# /usr/local/redis/bin/redis-cli -h 192.168.1.3 -p 6379 192.168.1.3:6379>
6.4、redis的数据操作命令
可以参考:redis命令总结
七、配置登录密码
一般情况下,是不需要做redis登录验证的,按照官方解释,用户登录redis,每秒可以尝试150k(15万)次登录,这意味着你需要有非常非常复杂、强壮的密码;否则使用暴力方式破解,用不了多少时间。
另外,在企业内部,一般都会搭建自己的内网,服务器一般都做了ip登陆限制,所以登录验证也不需要担心外部机器访问到redis服务器。
设置redis的登录密码也很简答,在redis的配置文件中,有一个requirepass配置项,后面跟着的就是密码,默认情况下是注释掉的,表示连接redis服务器不需要密码验证。
如果要设置登录密码,只需要设置requirepass的配置项值即可,比如下面将登录密码设置为searchingbeyond
# 编辑redis配置文件 vi /usr/local/redis/etc/redis.conf,设置requirepass配置项 requirepass searchingbeyond
修改配置文件后,redis服务器需要重启,并且启动时需要指定配置文件:
[root@centos ~]# /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf 4839:C 22 Dec 23:48:00.029 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo 4839:C 22 Dec 23:48:00.029 # Redis version=4.0.14, bits=64, commit=00000000, modified=0, pid=4839, just started 4839:C 22 Dec 23:48:00.029 # Configuration loaded
测试不指定密码登录:
[root@centos ~]# /usr/local/redis/bin/redis-cli -h 192.168.1.3 -p 6379 192.168.1.3:6379> set testKey 'testValue' (error) NOAUTH Authentication required.
可以看到,我们连接redis时,没有加密码,所以虽然表面上连接成功了,但是执行redis命令时,就会提示“未授权”
测试指定密码登录,需要使用-a选项,后面加上密码即可
[root@centos ~]# /usr/local/redis/bin/redis-cli -h 192.168.1.3 -p 6379 -a searchingbeyond Warning: Using a password with '-a' option on the command line interface may not be safe. 192.168.1.3:6379> set testKey 'testValue' OK 192.168.1.3:6379> get testKey "testValue"
集群搭建参考:redis集群搭建