linux centos8 安装redis
首先来讲讲安装时碰到的坑:
将redis安装在root目录中,一直报错:
cc: 错误:…/deps/hdr_histogram/hdr_histogram.o:没有那个文件或目录
无论怎么修改都没用,最后将redis安装在/usr/local目录下就没问题了!
一、下载redis
下载地址:https://redis.io/download
然后将压缩包放入你将要安装的位置(这是我的位置):
二、解压、安装、编译
tar -zxvf redis-6.2.6.tar.gz
解压完成后进入redis文件夹,安装一下gcc依赖,否则会报错
yum install gcc-c++ #安装gcc环境 (因为redis是在C环境中编译的)
gcc -v #查看版本
这是防止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
进入redis文件夹中编译:
[root@node2 redis-6.2.6]# make
关于编译报错:
安装redis报错cc: error: …/deps/hiredis/libhiredis.a: No such file or directory的解决办法
参考这里解决:https://www.cnbugs.com/post-1833.html
最后结果如下图
输入以下命令安装 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
首先将redis.conf文件copy到bin文件夹下(installl生成的)
cp /usr/local/redis/redis.conf /usr/local/redis/bin
然后编辑bin下面的redis.conf完成以下配置:
(5)更改redis密码
启动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
五、关闭防火墙
CentOS 7.0默认使用的是firewall作为防火墙
查看防火墙状态
firewall-cmd --state
停止firewall
systemctl stop firewalld.service
禁止firewall开机启动
systemctl disable firewalld.service
六、通过idea连接redis测试
1.导入依赖
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/redis.clients/jedis -->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</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.结果