当前位置:   article > 正文

linux下安装redis(真·离线安装)_linux 离线安装redis

linux 离线安装redis

安装redis本身不是很麻烦,需要下载压缩包,然后解压,编译,因为官网提供的都是c语言源码,所以麻烦在编译这里,它需要gcc编译器,这个编译器安装起来略麻烦些,幸而我找到了一种简单的离线安装方式。

所以先看下gcc

先检查下环境中是否存在gcc编译器,输入gcc -v来测试:

现在环境没有gcc编译器,如果有输出如下:

若环境中存在gcc,可以跳过gcc安装。

下面说安装方式:

有几种方式安装,可以联网用命令安装,当然你的软件源必须得配好。还有离线安装,离线安装也有几种方式,下载gcc压缩包,我个人没有尝试成功。用相关的rpm包安装成功。这里记录下rpm安装方式(真·离线模式):

所需的rpm包如下:

其中tcl是在make test的时候需要,或许不装也可,未曾尝试。

这些rpm包都可以在rpm仓库找到,链接如下(我是centos7):

http://mirrors.aliyun.com/centos/7/os/x86_64/Packages/

如果是centos6可以参考如下地址:

http://mirrors.163.com/centos/6/os/x86_64/Packages/

用ftp工具将这些包传到服务器上,我扔在了tmp目录,新建一个文件夹rpm,里面是安装gcc需要的rpm包,rpm列表如下:

进入rpm目录,可以直接一个命令安装:

rpm -ivh *.rpm --nodeps --force

其中i表示安装,v表示显示安装过程,h表示显示进度nodeps表示不考虑依赖,force就是强制安装。当然也可以一个个输命令(rpm -ivh mpfr.....rpm)效果如下:

显示安装成功,接下来输入gcc -v测试下:

 到这里gcc就装好了,下面开始安装redis和配置:

下载redis包,我下的是5.0,将redis压缩包传到服务器上,然后解压:

进入解压目录查看:

接下来在这里执行make命令(这时候就是gcc在干活了),执行成功后显示效果如下:

如果这里报错(jemalloc/jemalloc.h: No such file or directory),需要加参数 MALLOC=libc

查看目录结构:

接下来进入src目录,准备开始安装工作,将redis安装到/usr/local/redis目录下,这个可以自定义,FHS(Filesystem Hierarchy Standard )推荐软件安装在/usr下,opt/目录可以存放些第三方协力软件,例如那些解压即用的。下一步在src目录下执行:

 make install PREFIX=/usr/local/redis/

安装成功,可以按提示测试下make test,这个操作时间会比较长:

进入安装目录/usr/local/redis下看看:

可以看到当前是没有配置文件的,所以需要进入解压目录,把配置文件复制到bin目下:

cp redis.conf /usr/local/redis/bin/

结果如下:

先启动下试试:

启动成功。

再开一个窗口测试下:

这里证明redis启动没问题,但是目前服务端如果退出脚本就会结束进程:

接下来简单修改下配置文件让它可以在后台运行:

# 查找daemonize no改为 yes以守护进程方式运行 即以后台运行方式去启动

daemonize yes

# 修改dir ./为绝对路径, 默认的话redis-server启动时会在当前目录生成或读取dump.rdb 所以如果在根目录下执行redis-server /etc/redis.conf的话
# 读取的是根目录下的dump.rdb, 这个rdb相当于是一个redis的快照,为了能快速恢复,这里的dir就是缓存文件目录

dir /usr/local/redis/data/bin

# 修改appendonly为yes

# 指定是否在每次更新操作后进行日志记录, Redis在默认情况下是异步的把数据写入磁盘,

# 如果不开启,可能会在断电时导致一段时间内的数据丢失。 因为 redis本身同步数据文件是按上面save条件来同步的,
# 所以有的数据会在一段时间内只存在于内存中。默认为no

appendonly yes
# redis 日志生成位置
logfile "/var/log/redis/redis.log"

loglevel:指定日志级别,默认是notice这个适用于生产环境,开发的话还是打debug把。verbose(冗长的):包含很多不太有用的信息,但比debug要清爽一些。warning:警告信息。

如果需要设置密码的话,把requirepass注释去掉,写上自己的密码,重启服务即可。

重启后用客户端连接就需要认证了:

也可以在连接的时候就指定密码:

简单配置之后就可以重启测试下了:

由于现在启动在后台,所以看不到输出,可以进入日志目录查看日志:

日志打印启动成功。

可以用cli客户端连接测试下,发现连接成功,简单的插条数据,关闭redis用shutdown命令:

redis-cli shutdown

或者直接杀死进程。

如果是关闭远程服务器的redis用命令:

redis-cli -h xxx.xxx.xxx.xxx  -p xxxx -u xxxx -a xxxx  shutdown

目前来说,redis当前只能被本机访问,因为在redis.conf中指定bind ip为127.0.0.1,查看进程也能看到:

要修改redis处理其他地址的请求,需要修改redis.conf文件:

把它注释掉就好了。重启redis,查看进程:

*代表可以接受其他地址。这时候用另一个机子试一试:

连接远程命令为redis-cli -h 主机 -p 端口

发现连不上,连接不到主机,于是我ping了下地址:

地址是可以ping通的,所以问题可能出在端口上,检查防火墙端口是否开放6379:

发现防火墙没有开放这个端口,很显然下一步需要在防火墙中添加该端口:

添加完并重载防火墙后,查看端口已经开放。下面接着连接:

连接成功,但是提示redis在保护模式下,不允许操作。把配置文件里保护模式关了就好了。

然后重启redis,再次尝试连接:

连接成功。这里仅仅是记录我在安装配置中遇到的问题,折腾的时间也比较长,所以加以记录以免下次操作再多浪费时间。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/636038
推荐阅读
相关标签
  

闽ICP备14008679号