最近公司的平台须要作一些分布式的规划,其中会话咱们打算用redis来存储,由于以前也有了解过redis,但都是在windows上使用,为了发挥redis的优点,此次咱们打算直接在Linux上安装使用,因此我就打算安装一个来测试,本觉得安装一个redis,不就几分钟的事情嘛,没想到整整折腾了半天才搞好,因此把此次安装redis的过程记录一下,也方便后面的人在使用的时候,要避免这些坑,别在安装的时候,就耗费了时间了!git
这个没有什么好说的,直接官网下载,地址:https://redis.io/download,看好了哦,官网并无windows版本,毕竟这东西一出来就是针对Linux平台,固然若是须要windows平台的,能够到另外的地方下载,该redis是微软的一个开源组织将redis迁移过来,固然版本就没更新这么快了,有些比较好的特性,性能方面,估计没正规军这么好了,地址:https://github.com/MicrosoftArchive/redis/tagsgithub
在centos安装这redis,一开始很顺利,咕咚咕咚一会儿,启动虚拟机,走起,安装命令redis
$ wget http://download.redis.io/releases/redis-4.0.8.tar.gz $ tar xzf redis-4.0.8.tar.gz $ cd redis-4.0.8 $ make
安装命令,下载和解压都没有问题,进行make编译的时候,居然编译不了,报错了,第一坑,查了一下,原来centos缺失了对应的编译器,因此安装了一个插件,后面从新试试,居然编译成功了,而后使用命令src/redis-server启动redis,也很顺利,出现了预想中的笑脸图案。而后在打开命令行,打开客户端,也很顺利,也成功,试着存储一个字符串,也成功了,本觉得就这样嘛。windows
在另外机子上用redis desktop Manager链接,发现根本连不上,什么问题咧,先在cmd上telnet一下端口,发现默认6379端口没有打开,明明启动了,怎么会没打开呢,后面发现Linux防火墙没有开放这端口,须要firewall-cmd --add-port=6379/tcp添加一下端口,另外redis默认是只能本机访问的,因此要在redis.conf修改一下配置,包括bind127.0.0.1注释掉,密码启用requirepass,这个须要去掉注释,另外若是是有保护模式protected mode 为yes,要改成no,这样外部才能连上redis,最后别觉得这样就能够了。centos
更大的坑等着,就是不管你怎么改,好像都没有起到做用,仍是报链接错误,详细看看,好像修改的配置都没起到做用,从新启动了几回电脑,包括重启redis,结果都仍是同样,最后发现redis能够将加载指定配置文件启动的,使用src/redis-server redis.conf一开始报错Server can't set maximum open files to 10032 because of OS error: Operation not permitted.,彷佛是权限不够的问题,加sudo ,发现报Creating Server TCP listening socket *:6379: bind: Address already in use,这个报错是redis还在使用中,使用src/redis-cli shutdown关闭后,从新启动,此次成功启动,再用redis desktop Manager链接,一下就链接上去了,操做都没有问题,折腾半天终于搞定了Linux上安装redis并在外部能够链接。socket
一、编译redis时候报错,通常是编译命令不支持,须要下载插件,具体能够根据报错信息到网上找找。tcp
二、redis默认是只能在本机上使用的,若是须要外部链接使用,请在配置文件注释掉bind 127.0.0.1分布式
三、从redis3.2开始已经默认开启protected mode 为yes,若是须要在外部链接,须要将此改成no性能
四、外部启用,请将密码启用,具体找到requirepass注释去掉,密码改为本身的密码测试
五、Linux默认是没有开启6379端口,能够先查firewall-cmd --query-port=6379/tcp是否开启了,若是没有启用,须要firewall-cmd --add-port=6379/tcp添加
六、修改后的配置,不知道为何不生效,为了保险起见,启动redis,请默认将redis.conf指定为配置文件,一块儿启动;通常可能会遇到权限不足或者redis没有彻底关闭问题,若是是权限问题,请在须要执行命令的前面加sudo命令,加大权限执行;若是是没有关闭问题,请先使用src/redis-cli shutdown关闭,若是仍是关闭不了,绝招,kill -9 pid。