redis 安装
一、手动安装
安装环境:centos(腾讯云服务器)
这个安装如果不是个人使用可以跳过
有两种方法,一种是通过apt-get自动安装下载,另一种是自己下载然后编译运行。推荐第二种,第一种下载的软件很多东西你都不知道安装到哪了,而且不能后台运行。我就是遇到这个坑了,下面附上如何卸载通过apt-get install安装的redis
两步:
apt-get --purget remove redis-server
apt-get --purget remove redis-tools
正规的
sudo apt-get purge --auto-remove redis-server
参考文章:https://www.codercto.com/a/41257.html
下面正式介绍redis的安装(linux)
1. 下载redis压缩包
进入到/usr/local/src/
cd /usr/local/src
wget https://download.redis.io/releases/redis-6.0.9.tar.gz
我这里指定了下载的目录

2. 安装
-
检查是否有gcc环境
由于redis是用c语言开发的,等下我们安装的过程就是编译,因此先检查一下是否是否有gcc环境。
gcc -version如果没有安装就安装吧
安装gcc
yum install gcc-c++因为redis 6.0的版本需要gcc升级为9.0,所以需要升级
# 安装scl源 yum install -y centos-release-scl scl-utils-build # 安装9版本的gcc yum install -y devtoolset-9-toolchain scl enable devtoolset-9 bash gcc -v

-
解压缩.gz压缩包
tar -zxf redis-6.0.9.tar.gz成功后不会有提示,如下图。不过我们可以进入当前目录看一下是否解压成功

使用ls会发现/usr/local目录下已经有了一个redis-4.0.0的文件夹了,所以解压成功(当然你也可以进入目录里看一下)

-
编译redis源码
cd redis-6.0.9 make然后你会看到一大堆的信息弹出来,这是正常的

-
安装redis
在redis的目录(/usr/local/src/redis-6.0.9)下
mkdir /usr/local/redis make PREFIX=/usr/local/redis/ install

3. 启动
redis的启动有两种方式,一种是前端启动,一种是后端启动。前端启动的缺点是如果是ssh命令连接的远程服务器,当ssh命令窗口结束redis-server程序也就结束了,因此不推荐这种。不过下面还是将两种方式都介绍一遍
前端启动
启动方式:
直接运行bin/redis-server将以前端模式启动。【bin目录是在/usr/local/redis/bin】
./redis-server
注意这里./前面有空格
启动缺点:
ssh命令窗口关闭则redis-server程序结束,不推荐使用此方法
启动图例:
图片丢失
前端启动的关闭:ctrl+c
后端启动
第一步:将redis源码包中的redis.conf配置文件复制到/usr/local/redis/bin/下
cd /usr/local/src/redis-6.0.9
cp redis.conf /usr/local/redis/bin/
第一句其实是进入到刚才的redis源码目录 就是解压缩后的目录 不是安装目录,安装目录是redis
第二句:cp是拷贝的意思,将redis.conf文件拷贝到/redis/bin/目录下
第二步:修改redis.conf,将daemonize由no改为yes
cd /usr/local/redis/bin/
vim redis.conf

切换到bin目录下,修改redis.conf配置文件里的daemonize字段,将no改为yes(vim中按 i进入输入模式 按ESC退出输入模式,然后按 :wq保存并退出),其实就是设置是否后台运行。
技巧:
搜索,按Esc退出编辑模式 然后按/搜索内容 敲Enter就可以搜索本页面的内容

第三步:执行命令
./redis-server redis.conf
这里需要注意的是./前面是有个空格的

后端启动的关闭方式
非正常关闭(不推荐使用):
kill 5528
5528是redis运行的程序的PID,具体还是得查一下还知道,这个应该是不固定的
正常关闭:
./redis-cli shutdown
注意这里也是得在redis/bin目录下进行
设置开机自启动
其实就是将redis加到系统自启动的服务中
-
在系统服务目录创建redis.service文件
vim /etc/systemd/system/redis.service写入以下内容
[Unit] Description=redis-server After=network.target [Service] Type=forking ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/bin/redis.conf PrivateTmp=true [Install] WantedBy=multi-user.target -
重载系统服务
systemctl daemon-reload -
测试并加入开机自启
- 关闭redis-server: systemctl stop redis-service
- 开启redis-server: systemctl start redis.service
- 查看redis-service状态:systemctl status redis.service
-
开启成功,将服务加入开机自启
systemctl enable redis.service

4. 连接redis
连接redis有三种方式
命令行方式(redis自带的客户端)
就是在redis/bin目录下敲一行指令
./redis-cli -h 134.175.22.186 -p 6379
-h:连接你的redis所在主机的ip地址,这个可以省略,省略默认就是主机(172.0.0.1)
-p:redis服务的端口号,这个也可以省略,省略的话默认是6379。
bug1:外网无法连接腾讯云服务器上的redis
在这里遇到了一个bug,我将服务器的ip地址写上去了,访问失败。我不写ip地址,默认就是本机,然后竟然成功了。很匪夷所思。

通过几天的查询,中间走了一些弯路(这里要严重批评一些博客,真的是错误很多还跟风,一个错了导致n多个都是错的)。
问题所在:
在讲问题前先说redis的bind的用法,网上很多博客都说bind是用来允许远程添加的ip地址的,只要添加了,远程连接redis时就会放行。其实这个说法是错误的!
redis的bind只是用于绑定本机网关对应的ip地址,有些不一定只有一个网卡ip地址,比如云服务器。而bind 0.0.0.0意思是所有的本地网卡ip地址都可以。linux中可以通过ifconfig命令查看本机的ip地址

**问题分析:**通过上面的ifconfig指令后可以看到我是有两个ip地址的,不过在我的redis配置文件redis.conf中我只配置了127.0.0.1这个ip地址,内网地址没有配置。
当我使用./redis-cli 连接命令用的是134.175.22.186这个云服务器对外的公网ip地址时,进入服务器内部其实还是得转成内网ip地址的。由于我只配置了127.0.0.1,redis没有找到由内网地址进入的连接入口,就会拒绝。
解决方法:
-
查询所有的ip地址
linux使用ifconfig windows使用ipconfig
-
编辑redis.conf,添加所有的ip地址
cd 进入你的redis.conf路径 我的路径是/usr/local/redis/bin/redis.conf
vim redis.conf
bind 127.0.0.1 另一个网关ip地址

-
重启服务
./redis-server redis.conf ps -ef|grep redis./前面有空格,第2行的命令是查看redis服务的线程
-
连接
这时候你用127.0.0.1连接或者外网ip地址连接都ok了
最后直接连接就好了,附上完整的过程

bug2:外网无法访问阿里云服务器的redis
问题描述:我使用了阿里云服务器再次搭建了redis 但是按照上次的踩坑经历 在bind 的时候添加上本机的另外一个网关地址 但是奇怪的是 不管是在本地连接还是外网 都连接不上
-
外网telnet 端口号 失败

-
本地 ps ef|grep 6379 显示该端口是6379占用
-
防火墙已关闭
-
阿里云的安全组已经配置了6379
解决: bind那块我弄错了 我写错了位置
redis.conf 文件中有一个默认打开的 一个#注释的 我将原来注释的打开了 导致我写在上面的内容被下面的给覆盖了

检查配置文件
5. 远程连接中redis的配置
真正的远程连接在上面的bind配置之后还得将promote 设为no 然后添加访问密码。
PS:得把deamonize设置为yes 这个是将redis以进程模式打开

直接参考我的这篇博客吧 腾讯云服务器redis的远程连接
6. redis的卸载
先停止redis的服务 然后直接删除redis的目录

1496

被折叠的 条评论
为什么被折叠?



