主机连接由虚拟机Linux搭建的redis,一步到胃,直接把坑踩完~

前言

最近准备学习一下Redis来做缓存,在选择Redis环境上又犹豫了很久。
有人推荐购买阿里云的Redis服务器,但是蚊子腿也是肉啊,而且便宜也只是针对新手罢了。
作为白嫖党,学习阶段一分钱也别想让我掏出来。
发现windows并不能很好的运行Redis,虽然也提出了一种解决方案(即WSL),但是WSL总的来说,还不成熟,1.0版本发布还没几天(我写这篇文章的时候),并且它不能兼容所有Linux程序。
因此决定使用虚拟机Ubuntu来完成Redis的环境搭建。

步骤说明

1.下载Ubuntu的镜像文件,搭建虚拟机

这个部分不应该放到Redis这里来说,直接跳过了,如果不清楚可以自行搜索教程。

2.安装Redis

原则上来说,这个时候已经可以安装Redis了。
于是,我去官网看了一下它的Get Started,他的推荐安装方法是从apt下载软件包:

curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg

echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list

sudo apt-get update
sudo apt-get install redis

一开始,我还真的就这么做了,结果直接下回来个老古董(貌似是5.3.2版本),后来得知是apt更新太慢,此时最新官网版本都7.0了。

ps:这都不重要,关键是下回来之后,很多bug,比如它自动启动,还永远无法关掉redis进程。
甚至于sudo kill 命令也杀不死,马上就自动重启,然后无视配置文件,不管你指定多少次,都是默认启动。
思来想去也找不到原因,最终心一横,干脆把虚拟机也干碎,remake系统。

重来之后,决定安装最新版本的Redis,就到官网下载了Redis7.0.tar.gz的版本,准备安装~
结果发现,源码安装软件还得使用Gcc编译器,又去找了个Gcc编译器的源码。

然后最让人崩溃的是,安装新版本的Gcc 12.2.0需要c编译器(好家伙,套娃是吧,我有编译器我还安装你干嘛?)

最后还是屈服于现实,使用了软件包一键操作安装Gcc和make命令:

sudo apt-get install build-essential

不管怎么说,接下来直接解压Redis文件,进入Redis7.0的目录下,执行make,进入里面的src文件夹,执行install操作

make
cd src
install

这样虚拟机上Redis安装就基本完成啦,默认的安装路径是/usr/local/redis;
可以复制一份redis.conf,可以用来当自己的配置文件.

主机连接虚拟机Redis

1.写好连接代码

public class ConnectTest {
    public static void main(String[] args) {
    //我这里用的是Jedis库
        Jedis jedis=new Jedis("172.18.30.67",6379);
        System.out.println(jedis.ping());
//        jedis.set("userName","音无结弦");
        jedis.close();
    }
}

注意好虚拟机的ip地址。
写好基本的测试代码,就可以准备测试了

2.启动虚拟机Redis,准备测试

如果你直接测试,大概率你会得到一个这样的报错

Failed to connect to any host resolved for DNS name.

这是因为Redis有一个保护模式,默认是不能被远程连接的。
如果我们需要进行连接,需要修改Redis的配置文件。

# bind 127.0.0.1 -::1
protected-mode no

禁用默认的127.0.0.1的本地地址,同时关闭保护模式(默认为yes)。
但是完成了这一步,还没有结束……
这时候你进行连接测试,得到的结果将仍是一个同上的报错。
原因是主机和虚拟机还没有在网络上真正联通,大概率主机是ping不通虚拟机的。
需要修改主机与虚拟机的连通方式:
主机连接由虚拟机Linux搭建的redis,一步到胃,直接把坑踩完~_第1张图片
Vm的设置中默认连通方式是Nat模式,而我们要将其设置为桥接模式,这样主机和虚拟机会处于同一个网段。
当这样设置之后,我们会发现主机能够ping通虚拟机了。
主机连接由虚拟机Linux搭建的redis,一步到胃,直接把坑踩完~_第2张图片
在配置文件目录下启动虚拟机Redis:

redis-server ./redis.conf

这时候进行测试,控制台得到的结果如下:
主机连接由虚拟机Linux搭建的redis,一步到胃,直接把坑踩完~_第3张图片

NICE!!!

你可能感兴趣的:(编程经验,redis,linux,数据库,java,缓存)