最近准备学习一下Redis来做缓存,在选择Redis环境上又犹豫了很久。
有人推荐购买阿里云的Redis服务器,但是蚊子腿也是肉啊,而且便宜也只是针对新手罢了。
作为白嫖党,学习阶段一分钱也别想让我掏出来。
发现windows并不能很好的运行Redis,虽然也提出了一种解决方案(即WSL),但是WSL总的来说,还不成熟,1.0版本发布还没几天(我写这篇文章的时候),并且它不能兼容所有Linux程序。
因此决定使用虚拟机Ubuntu来完成Redis的环境搭建。
这个部分不应该放到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,可以用来当自己的配置文件.
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地址。
写好基本的测试代码,就可以准备测试了
如果你直接测试,大概率你会得到一个这样的报错
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不通虚拟机的。
需要修改主机与虚拟机的连通方式:
Vm的设置中默认连通方式是Nat模式,而我们要将其设置为桥接模式,这样主机和虚拟机会处于同一个网段。
当这样设置之后,我们会发现主机能够ping通虚拟机了。
在配置文件目录下启动虚拟机Redis:
redis-server ./redis.conf
NICE!!!