liunx安装redis6.0.5

    技术2024-01-08  93

    liunx安装redis6.0.5

    1.官网传送门:https://redis.io/

    或者

    wget http://download.redis.io/releases/redis-6.0.5.tar.gz

    2.提取和编译Redis

    tar xzf redis-6.0.5.tar.gz cd redis-6.0.5 make

    报错:

    server.c:2868:11: error: ‘struct redisServer’ has no member named ‘cron_malloc_stats’ server.cron_malloc_stats.allocator_resident = 0; ^ server.c:2869:11: error: ‘struct redisServer’ has no member named ‘lastbgsave_status’ server.lastbgsave_status = C_OK; ^ server.c:2870:11: error: ‘struct redisServer’ has no member named ‘aof_last_write_status’ server.aof_last_write_status = C_OK; ^ server.c:2871:11: error: ‘struct redisServer’ has no member named ‘aof_last_write_errno’ server.aof_last_write_errno = 0; ^ server.c:2872:11: error: ‘struct redisServer’ has no member named ‘repl_good_slaves_count’ server.repl_good_slaves_count = 0; ^ server.c:2884:27: error: ‘struct redisServer’ has no member named ‘ipfd_count’ for (j = 0; j < server.ipfd_count; j++) { ^ server.c:2885:48: error: ‘struct redisServer’ has no member named ‘ipfd’ if (aeCreateFileEvent(server.el, server.ipfd[j], AE_READABLE, ^ server.c:2892:27: error: ‘struct redisServer’ has no member named ‘tlsfd_count’ for (j = 0; j < server.tlsfd_count; j++) { ^ server.c:2893:48: error: ‘struct redisServer’ has no member named ‘tlsfd’ if (aeCreateFileEvent(server.el, server.tlsfd[j], AE_READABLE, ^

    错误原因:gcc版本问题,新版本的。redis6.0以上

    //查看gcc版本 gcc -v

    升级版本

    yum -y install centos-release-scl yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils scl enable devtoolset-9 bash //注意:scl命令启用只是临时的,推出xshell或者重启就会恢复到原来的gcc版本。 //如果要长期生效的话,执行如下: echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile

    执行命令make

    //下方可忽略,以下持续时间比较长,大概五六分钟左右

    //可选测试 //使用make test进行测试 yum install tcl make test

    3.启动redis

    ./src/redis-server

    redis启动成功,但是这种启动方式需要一直打开窗口,不能进行其他操作,不太方便。按 ctrl + c可以关闭窗口。

    4.以后台方式启动redis

    ①:使用命令:vim redis.conf 找到如下一行修改

    //no 改成 yes daemonize yes

    指定redis.conf启动方式

    ./src/redis-server redis.conf

    ②:关闭redis进程

    ps -aux | grep redis root 19565 0.1 0.0 162260 2496 ? Ssl 16:49 0:00 ./src/redis-server 127.0.0.1:6379 root 19786 0.0 0.0 112688 672 pts/1 R+ 16:51 0:00 grep --color=auto redis

    ③:使用kill命令杀死进程

    kill 19565

    5.设置redis开机自启动

    //进入etc文件夹 cd /etc //创建redis目录 mkdir redis //将/usr/local/redis-6.0.5/redis.conf 文件复制一份到/etc/redis目录下,并命名为6379.conf   cp /usr/local/redis/redis-6.0.5/redis.conf /etc/redis/6379.conf //将redis的启动脚本复制一份放到/etc/init.d目录下 cp /usr/local/redis/redis-6.0.5/utils/redis_init_script /etc/init.d/redisd

    设置开机自启动

    //先切换到/etc/init.d目录下 cd /etc/init.d //执行自启动命令 chkconfig redisd on

    启动redis

    service redisd start

    如有报错1:

    /var/run/redis_6379.pid exists, process is already running or crashed

    解决方法:rm -rf /var/run/redis_6379.pid 重新执行 service redisd start 即可 如有报错2:

    /etc/init.d/redisd: line 28: /usr/local/bin/redis-server: No such file or directory

    解决方法:

    vim /etc/init.d/redisd 把 EXEC=/usr/local/bin/redis-server CLIEXEC=/usr/local/bin/redis-cli 改为自己安装路径 EXEC=/usr/local/redis/redis-6.0.5/src/redis-server CLIEXEC=/usr/local/redis/redis-6.0.5/src/redis-cli

    重新执行 service redisd start 即可 关闭redis

    service redisd stop

    6.允许远程链接

    vim redis.conf

    ①:把bind 127.0.0.1使用#注释掉,默认只允许本机链接

    #bind 127.0.0.1

    ②:把protected-mode yes 改为no,3.2之后加入的新特性,目的是禁止公网访问redis cache,增强redis的安全性

    protected-mode no

    ③:将 requirepass foobared注释去掉,foobared为密码

    requirepass 你的密码 //启动redis ./src/redis-server redis.conf ③:将 requirepass foobared注释去掉,foobared为密码

    requirepass 你的密码

    //启动redis ./src/redis-server redis.conf

    使用客户端工具连接

    连接成功!!!

    Processed: 0.012, SQL: 9