进入官网安装 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 的好处是:
与在虚拟机下使用 Linux 相比,WSL 占用资源更少,更加流畅;
WSL 可以对 Windows 文件系统下的文件直接进行读写,文件传输更方便;
剪贴板互通,可以直接在 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;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;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 = JedisConnectionFactory.getJedis(); jedis.auth("123456" ); jedis.select(0 ); }
测试成功!
# 中文编码启动 redis
redis-cli --raw