本文介绍redis在Linux上(小编采用Ubantu16的发行版)安装配置和常见问题。首先从Redis官网下载Lunux版本tar包(https://redis.io/download),下载5.0.8版本。
(一)redis安装步骤:
客户机下载好tar包之后,通过SSH工具将tar包上传到虚拟机linux目录下进行解压(如/opt,如果因为没有root权限导致无法上传到该目录则传到linux桌面目录解压后再通过sudo mv命令移动到/opt也可):
tar -zxvf redis-5.0.8.tar.gz
sudo mv redis-5.0.8 /opt
执行make(如果遇到gcc报错则执行yum install gcc-c++,安装好之后再执行一下make distclean将上一次make的操作清空回滚掉):
cd /opt/redis-5.0.8
make
如果报gcc错误则执行yum install gcc-c++,然后重新执行make install,正常编译后如下:
查看redis默认安装位置:默认在/usr/local/bin,此时还没有redis的东西,则要先到/opt/redis-5.0.8目录下执行make install,将redis相关的命令文件(如redis-cli命令)生成到默认安装位置上:
redis-benchmark :性能测试命令
redis-check-aof :修复aof持久化文件
redis-check-rdb :修复rdb持久化文件
redis-cli :redis客户端工具
redis-sentinel :搭建哨兵集群时工具
redis-server:redis服务端工具
常用命令:
1、查看redis是否在运行: ps aux | grep redis
2、启动redis: redis-server redis.conf
3、关闭redis: redis-cli shutdown
4、远程客户端访问:redis-cli -h host -p port -a password -h 服务器地址 -p 端口号 -a 密码
(二)redis配置
redis最重要的配置文件是redis.conf文件,这里最好将这个文件进行出厂备份用于后续恢复使用。
接下来看这个redis.conf文件,这个配置文件有非常多的配置,各个配置也有不同的含义,详细配置文件各个配置的含义在文末会以中文注释贴出,下面修改个别比较重要的配置并启动redis。vi redis.conf打开这个配置文件进行修改:
(1)bind:绑定监听哪个服务器上的连接,默认127.0.0.1只监听本机的连接,如果是单网卡一般就是linux的本机IP。如果redis发布在公网云上这个要改为内网IP,如果有多个IP在可以通过bind 0.0.0.0监听全部。由于本文的环境是采用两台笔记本,redis部署在一台笔记本linux虚拟机上,另一台笔记本访问的模式,因此这个bind需要修改:
(2)protected-mode:保护模式:默认启用只能本机连接,一般应该设置为no。如果设置了bind 0.0.0.0则不需要设置为no。
(3)daemonize:默认Redis不作为守护进程运行。需要的话改为yes以后台方式运行,一般yes
这样,就可以启动一个简单的redis配置了。:wq保存后,执行启动redis命令:
/usr/local/bin/redis-server ./redis.conf
启动完成后,在Windows客户机上通过redis-desktop-manager0.9免费版本就可以测试连接这个linux上发布的redis服务了:
注意可能有连接不上的情况,有几个原因可以进行排查:
1)redis.conf配置中bind和protected-mode配置是否正确;
2)linux系统是否进行端口映射,或者是否关闭了防火墙或端口允许通过(service iptables stop)
解决方案:
(a)对于redis.conf配置中bind和protected-mode配置是否正确:可以将bind屏蔽同时设置protected-mode为no,当设置了bind或设置了密码时protected-mode的配置才会失效。
(b)linux系统是否进行端口映射:在VMWare编辑--虚拟网络编辑器--NAT--添加服务主机与虚拟机的端口转发中添加服务主机与虚拟机之间的端口转发,当客户主机访问服务主机的某个端口上时会被转发到虚拟机地址和端口上。其中6378端口是服务主机端口,6379是虚拟机的redis端口:
(c)是否关闭了防火墙或端口允许通过:service iptables stop关闭虚拟机防火墙,
或者通过下面命令依次执行:/sbin/iptables -I INPUT -p tcp --dport 6379 -j ACCEPT
保存防火墙修改命令:/etc/rc.d/init.d/iptables save
//只允许127.0.0.1访问6379
iptables -A INPUT -s 127.0.0.1 -p tcp --dport 6379 -j ACCEPT
最后,在客户主机通过Redis-Desktop-Manager工具连接服务主机IP和前面映射的端口6378,即可转发到虚拟机的redis服务和6379端口上了并建立连接了。
服务主机配置发布redis,客户主机远程连接redis的介绍到这,后面将从持久化文件和机制,redis API,三大缓存问题,高可用集群,分布式锁,主从复制和哨兵模式