redis学习--安装

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

我这里指定了下载的目录

图1

2. 安装


  1. 检查是否有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
    

在这里插入图片描述

  1. 解压缩.gz压缩包

    tar -zxf redis-6.0.9.tar.gz
    

    成功后不会有提示,如下图。不过我们可以进入当前目录看一下是否解压成功
    在这里插入图片描述

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

  1. 编译redis源码

    cd redis-6.0.9
    make
    

    然后你会看到一大堆的信息弹出来,这是正常的

在这里插入图片描述

  1. 安装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加到系统自启动的服务中

  1. 在系统服务目录创建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
    
  2. 重载系统服务

    systemctl daemon-reload
    
  3. 测试并加入开机自启

    • 关闭redis-server: systemctl stop redis-service
    • 开启redis-server: systemctl start redis.service
    • 查看redis-service状态:systemctl status redis.service
  4. 开启成功,将服务加入开机自启

    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 的时候添加上本机的另外一个网关地址 但是奇怪的是 不管是在本地连接还是外网 都连接不上

  1. 外网telnet 端口号 失败
    在这里插入图片描述

  2. 本地 ps ef|grep 6379 显示该端口是6379占用

  3. 防火墙已关闭

  4. 阿里云的安全组已经配置了6379

解决: bind那块我弄错了 我写错了位置
redis.conf 文件中有一个默认打开的 一个#注释的 我将原来注释的打开了 导致我写在上面的内容被下面的给覆盖了
在这里插入图片描述
检查配置文件

5. 远程连接中redis的配置


真正的远程连接在上面的bind配置之后还得将promote 设为no 然后添加访问密码。

PS:得把deamonize设置为yes 这个是将redis以进程模式打开
在这里插入图片描述

直接参考我的这篇博客吧 腾讯云服务器redis的远程连接

6. redis的卸载


先停止redis的服务 然后直接删除redis的目录

二、docker 安装


史上最详细Docker安装Redis (含每一步的图解)实战–宁在春

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值