Redis Linux安装,彻底解决编译问题

超级注意点

  • 核心就是:找教程,问chat
    • 把环境补齐
  • 然后 删除 解压的目录,重新解压
    • 这一步很重要,因为Redis的脚本,运行一次出错了,不删除整个目录,可能就修不好。
    • 有其他教程说,放在 usr/local下,没用的

另一种错误也要 删除重新执行

cd src && make testmake[1]:
 Entering directory `/usr/local/redis-5.0.4/src
 'You need tcl 8.5 or newer in order to run the Redis testmake[1]:
  *** [test] 错误 1make[1]: Leaving directory 
  `/usr/local/redis-5.0.4/src'make: *** [test] 错误 2
————————————————
版权声明:本文为CSDN博主「程序逸」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_43265564/article/details/112793857

解决办法:

原因:jemallloc 重载了Linux下的ANSI C中的malloc 和free函数

删除解压缩文件夹

重新执行编译命令(带参数)

make MALLOC=libc

安装命令

make PREFIX=/usr/local/redis install

下载解压Redis

ps -ef | grep redis | awk -F" " '{print $2;}' | xargs kill -9
yum -y install wget
wget https://download.redis.io/redis-stable.tar.gz


tar -xzvf redis-stable.tar.gz
cd redis-stable
make install
  • 假如make install报如下异常,直接使用make install MALLOC=libc
    • 这个说法坑人,对于新机器根本不行,缺了 太多 编译需要的环境了。

安装成功后标志

  • 报各种错,你肯定 看不到这个标志了

安装过后你会在src目录中找到几个 Redis 二进制文件,包括:

  • redis-server:Redis 服务器本身
  • redis-cli:是与 Redis 对话的命令行界面实用程序,客户端。

教程1

缺失 hiredis linenoise

  • https://blog.csdn.net/fujzz/article/details/90173278

*报错:*

*“cc: 错误:…/deps/hiredis/libhiredis.a:没有那个文件或目录”“
cc: 错误:…/deps/lua/src/liblua.a:没有那个文件或目录”*

img

解决办法如下:

进入deps目录执行以下命令:

  • make lua hiredis linenoise

这个教程不错,确实可以解决

教程2 Redis安装

linux centos8 安装redis
首先来讲讲安装时碰到的坑:
将redis安装在root目录中,一直报错:

  • cc: 错误:…/deps/hdr_histogram/hdr_histogram.o:没有那个文件或目录

    • 这里 你进入 /deps/hdr_histogram/ 看确实 是没有这个文件
      • 猜测是因为:Redis脚本文件出错了
  • 无论怎么修改都没用,最后将redis安装在/usr/local目录下就没问题了!

    • 作者应该是 重新解压的 放在了这个目录 确实会没问题

————————————————
版权声明:本文为CSDN博主「再困难也要勇往直前」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/niceday_007/article/details/121375664

下载地址:https://redis.io/download

Redis Linux安装,彻底解决编译问题_第1张图片

然后将压缩包放入你将要安装的位置(这是我的位置):

img

二、解压、安装、编译

tar -zxvf redis-6.2.6.tar.gz

解压完成后进入redis文件夹,安装一下gcc依赖,否则会报错

yum install gcc-c++   #安装gcc环境 (因为redis是在C环境中编译的)

gcc -v  #查看版本

hiredis linenoise install_bin include lib

  • 这是防止make编译报错
[root@node2 redis-6.2.6]# cd deps/
[root@node2 deps]# make lua hiredis linenoise

[root@node2 redis-6.2.6]#  ./configure
[root@node2 redis-6.2.6]# cd  deps/jemalloc/
[root@node2 jemalloc]#  make && make install_bin install_include install_lib
  • 有人说:以上错误也有可能是权限不足引起!!!
    • 猜测并不是,因为 给 777 了,还是 报错

进入redis文件夹中编译:

[root@node2 redis-6.2.6]# make

关于编译报错:

安装redis报错cc: error: …/deps/hiredis/libhiredis.a: No such file or directory的解决办法

输入以下命令安装 make PREFIX=/usr/local/redis install

  • 这里多了一个关键字 PREFIX= 这个关键字的作用是编译的时候用于指定程序存放的路径。比如我们现在就是指定了redis必须存放在/usr/local/redis目录。假设不添加该关键字Linux会将可执行文件存放在/usr/local/bin目录,
    库文件会存放在/usr/local/lib目录。配置文件会存放在/usr/local/etc目录。其他的资源文件会存放在usr/local/share目录。这里指定号目录也方便后续的卸载,后续直接rm -rf /usr/local/redis 即可删除redis。

执行结果如下图:

Redis Linux安装,彻底解决编译问题_第2张图片

这种时候基本上就是安装成功了。

三、运行redis
首先将redis.conf文件copy到bin文件夹下(installl生成的)

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

配置Redis

然后编辑bin下面的redis.conf完成以下配置:

Redis Linux安装,彻底解决编译问题_第3张图片

(5)更改redis密码

Redis Linux安装,彻底解决编译问题_第4张图片

启动redis服务:(以配置文件的方式启动)

[root@yjh bin]# pwd
/usr/local/redis/bin

[root@yjh bin]# ./redis-server /usr/local/redis/bin/redis.conf

四.查看redis进程 ps -aux | grep redis

两者都可查看状态:
ps -aux | grep redis

ps -ef | grep redis

img

CentOS 7.0默认使用的是firewall作为防火墙

查看防火墙状态

firewall-cmd --state

停止firewall

systemctl stop firewalld.service

禁止firewall开机启动

systemctl disable firewalld.service

六、通过idea连接redis测试
1.导入依赖

    <dependency>
        <groupId>org.apache.commonsgroupId>
        <artifactId>commons-pool2artifactId>
    dependency>
    
    <dependency>
        <groupId>redis.clientsgroupId>
        <artifactId>jedisartifactId>
        <version>2.9.0version>
    dependency>

2.测试

public void demo1(){
    // 1. 设置IP地址和端口
    Jedis jedis = new Jedis("192.168.23.136",6379,0);
    jedis.auth("123456"); //redis密码
    // 2. 保存数据
    jedis.set("name","imooc");
    // 3. 获取数据
    String value = jedis.get("name");
    System.out.println(value);
    // 4.释放资源
    jedis.close();
}

3.结果
Redis Linux安装,彻底解决编译问题_第5张图片
参考博文:https://blog.csdn.net/zhizungege/article/details/110876232?ivk_sa=1024320u
————————————————
版权声明:本文为CSDN博主「再困难也要勇往直前」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/niceday_007/article/details/121375664

教程3

  • Linux 下 Redis 安装常见问题及解决方案

安装前

  • 操作系统:Linux CentOS 7.9 64位
  • redis 安装包:官网下载地址:https://redis.io/download
    我使用的版本是 5.0.14 redis-5.0.14.tar.gz
  • 获得管理员权限,切换到 root 用户
    su root

简单安装

简单安装
将安装包上传至服务器,解压到指定文件夹下:

tar -zxvf redis-5.0.14.tar.gz -C /usr/local

安装 gcc:

yum install gcc-c++

编译安装:

cd /usr/local/redis-5.0.14
make
make install

测试:

make test

正常结束日志为绿色的 All tests passed without errors!
————————————————
版权声明:本文为CSDN博主「toollong」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_49523761/article/details/121441544

安装问题

清除生成的文件命令:

make distclean

出现问题一: tcl 包

You need tcl 8.5 or newer in order to run the Redis test
解决方案:更新 tcl 包
yum install tcl

出现问题二:

gcc: command not found
解决方案:安装 gcc

yum install gcc

出现问题三:

jemalloc/jemalloc.h: No such file or directory
解决方案一:将 jemalloc 换成 libc

make MALLOC=libc

解决方案二:安装 jemalloc

yum install jemalloc

出现问题四:libhiredis liblua libjemalloc

出现问题四:
…/deps/hiredis/libhiredis.a: No such file or directory
…/deps/lua/src/liblua.a: No such file or directory
…/deps/jemalloc/lib/libjemalloc.a: No such file or directory

解决方案:hiredis jemalloc linenoise lua

到 deps 目录下把它们都 make 一下

cd /usr/local/redis-5.0.14/deps
make hiredis jemalloc linenoise lua

其中对于 jemalloc 可以按照以下命令执行:

cd /usr/local/redis-5.0.14/deps/jemalloc
./configure
make

其他

对于其它问题暂时还没有发现,大佬们可以在评论区 提出 或 解答 所遇到的问题,供大家参考 ~

Chat这样说

make installmake 命令的一个特定目标,在执行 make install 时,

它会先执行 make,然后将生成的二进制文件、库文件或其他必要的文件安装到系统的指定位置,以供其他程序使用。

libhiredis liblua hdr_histogram libfpconv

cc: error: …/deps/hiredis/libhiredis.a: No such file or directory

cc: error: …/deps/lua/src/liblua.a: No such file or directory

cc: error: …/deps/hdr_histogram/libhdrhistogram.a: No such file or directory

cc: error: …/deps/fpconv/libfpconv.a: No such file or directory

在编译 Redis 之前,你需要确保已经安装了 Redis 的所有依赖项。根据你的错误消息,缺少以下依赖项:

  • hiredis
  • lua
  • hdr_histogram
  • fpconv

你可以按照以下步骤安装这些依赖项:

  1. hiredis

    sudo apt-get install libhiredis-dev
    
  2. lua

    sudo apt-get install lua5.1 liblua5.1-0-dev
    
  3. hdr_histogram

    sudo apt-get install libhdr-histogram-dev
    
  4. fpconv

    sudo apt-get install libfpconv-dev
    

好像只有前2个可以执行成功,后面就是 chat乱说的了?

qemu-ga

dpkg: error processing package qemu-ga (–configure): installed qemu-ga package post-installation script subprocess returned error exit status 127 Setting up pkg-config (0.29.1-0ubuntu4) … Processing triggers for man-db (2.9.1-1) … Errors were encountered while processing: qemu-ga E: Sub-process /usr/bin/dpkg returned an error code (1)

根据你提供的信息,安装 qemu-ga 包时遇到了错误。错误消息中提到了一个与该软件包相关的后安装脚本返回了错误退出状态 127。

这个错误可能是由于一个或多个原因引起的,例如软件包损坏、依赖关系问题或系统配置错误。为了解决这个问题,你可以尝试以下方法:

  1. 清理软件包缓存:

    sudo apt-get clean
    
  2. 更新软件包列表和依赖关系:

    sudo apt-get update
    
  3. 尝试重新配置 qemu-ga 软件包:

    sudo dpkg --configure -a
    

如果上述步骤没有解决问题,你可以尝试使用以下命令强制删除软件包,并重新安装:

sudo dpkg --force-all -P qemu-ga
sudo apt-get install qemu-ga
  • 这次 chat说对了,这样 确实 可以解决这个问题

cc not found

sh: 1: cc: not found
/bin/sh: 1: pkg-config: not found
/bin/sh: 1: pkg-config: not found
/bin/sh: 1: pkg-config: not found
    CC adlist.o
/bin/sh: 1: cc: not found

根据你提供的信息,出现了一些编译错误。这些错误表明在你的系统上缺少了一些必要的软件包和工具。在这种情况下,你需要安装编译所需的依赖项。

根据错误提示,你的系统缺少 ccpkg-config 工具。这些工具是编译过程中必须的。你可以按照以下步骤安装它们:

  1. 打开终端(Terminal)。

  2. 输入以下命令以安装 cc 工具:

    sudo apt-get install build-essential
    
  3. 输入以下命令以安装 pkg-config 工具:

    sudo apt-get install pkg-config
    

安装完成后,再次尝试运行 make install 命令进行安装。

设置时间

  1. 打开终端(Terminal)。

  2. 输入以下命令,以获取当前的系统时区设置:

    timedatectl
    
  3. 确认当前时区是否正确设置为你所在的时区。如果时区设置有误,可以进行下一步操作。

  4. 输入以下命令,将系统时区设置为正确的时区。

    sudo timedatectl set-timezone 
    

    其中, 是你所在的时区,比如 “Asia/Shanghai” 表示北京时间。

  5. 输入以下命令,确认时区设置已成功更改:

    timedatectl
    
  6. 检查系统时间是否已经更新为正确的时间。

通过以上步骤,你可以将 Linux 系统的时区设置为正确的值,从而解决 date 命令输出时间差了12个小时的问题。请确保你拥有管理员权限(sudo)以执行必要的操作。

之后 date -R 即可查看

  • 直接 date 看,不是 正常的时间

你可能感兴趣的:(redis,redis,bootstrap,数据库)