进入官网安装 docker-desktop


地址链接:https://docs.docker.com/desktop/install/windows-install/

这里需要重启电脑

重启后自动打开 docker,报错

然后直接在命令行里输入 wsl --update

安装完成

打开 docker 后正常进入

这里其实也可以通过文件安装:

点击直接自动下载
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

# wsl 是什么?

开发人员可以在 Windows 计算机上同时访问 Windows 和 Linux 的强大功能。 通过适用于 Linux 的 Windows 子系统 (WSL),开发人员可以安装 Linux 发行版(例如 Ubuntu、OpenSUSE、Kali、Debian、Arch Linux 等),并直接在 Windows 上使用 Linux 应用程序、实用程序和 Bash 命令行工具,不用进行任何修改,也无需承担传统虚拟机或双启动设置的费用。

# wsl 优势

使用 WSL 的好处是:

  1. 与在虚拟机下使用 Linux 相比,WSL 占用资源更少,更加流畅;
  2. WSL 可以对 Windows 文件系统下的文件直接进行读写,文件传输更方便;
  3. 剪贴板互通,可以直接在 Windows 下其它地方复制文本内容,粘贴到 WSL;


    添加镜像源:

    “registry-mirrors”: [“https://registry.docker-cn.com”,“https://docker.mirrors.ustc.edu.cn”],

现在通过获取镜像创建一个 docker


在命令行里输入:
docker run -d -p 6379:6379 --name redis redis:latest

可以看到已经有了一个

# 设置默认

wsl --set-default-version 2

# jedis

在测试包下编写一个测试类,注意 url 是你的虚拟机 ip,我这里的是 docker,其实就是 windows 子系统 linux 的 ip

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
package com.jun.test;

import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import redis.clients.jedis.Jedis;

/*
* @Author: jun
* @Date:2023/3/25 13:07
* @概述:
*/
public class JedisTest {

private Jedis jedis;

@BeforeEach
void setUp(){
//建立连接
jedis = new Jedis("172.27.0.1",6379);
//设置密码
jedis.auth("123456");
//选择库
jedis.select(0);
}

@Test
void testString(){
String result = jedis.set("junjun", "俊俊");
System.out.println("result:"+result);

String junjun = jedis.get("junjun");
System.out.println("junjun:"+junjun);
}

@AfterEach
void tearDown(){
if (jedis != null) {
jedis.close();
}
}
}

创建 jedis 连接池
编写一个配置类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package com.jun.jedis.util;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

/*
* @Author: jun
* @Date:2023/3/25 13:57
* @概述:
*/
public class JedisConnectionFactory {
private static final JedisPool jedispool;

static {
//配置连接池
JedisPoolConfig poolConfig = new JedisPoolConfig();
poolConfig.setMaxTotal(8);

poolConfig.setMaxIdle(8);

poolConfig.setMinIdle(0);

poolConfig.setMaxWaitMillis(1000);
//创建连接池对象
jedispool = new JedisPool(poolConfig,"172.27.0.1",6379,10000,"123456");

}

public static Jedis getJedis(){
return jedispool.getResource();
}
}

然后修改连接代码

1
2
3
4
5
6
7
8
9
10
 @BeforeEach
void setUp(){
//建立连接
// jedis = new Jedis("172.27.0.1",6379);
jedis = JedisConnectionFactory.getJedis();
//设置密码
jedis.auth("123456");
//选择库
jedis.select(0);
}


测试成功!

# 中文编码启动 redis

redis-cli --raw