目录
前言
redis-windows 是一个 由官方 Redis Windows 源代码编译而成的软件,你可以使用 redis-windows 在 windows 系统快速安装 Redis 用于本地开发和学习。
如果你想在 windows 电脑上练习 Redis 命令,或者在你的本地开发环境代码里连接你本地的 Redis 服务进行开发,那么 redis-windows 就很适合你。
一、下载
在 redis-windows 下载 页面下载 :
tex
Redis-8.8.0-Windows-x64-msys2-with-Service.zip
它适合你:
tex
Spring Boot
RedisTemplate
Jedis
Lettuce
本地学习
下载后进行解压,例如解压到:
tex
D:\Redis
然后在 D:\Redis\Redis-8.8.0-Windows-x64-msys2-with-Service下新建一个文件夹 redis-data,用于 redis 数据的持久化存储,即当你关闭 redis-windows 后,再次启动后 redis 也依然存在。
二、使用
有两种使用方式,一种是 前台模式,一种是 后台模式(即安装为windows 服务)。
前台模式可以练习redis 命令,直接在 cmd 命令进行设置 redis 值或者执行redis命令。
后台模式可以 用于项目 调用 redis 开发、测试环境。
1.前台模式运行
以管理员身份打开一个 cmd 窗口
然后执行下面的命令进入目录:
bash
cd D:\Redis\Redis-8.8.0-Windows-x64-msys2-with-Service
然后执行下面的命令以前台模式启动程序:
bash
RedisService.exe run --foreground --dir D:\Redis\Redis-8.8.0-Windows-x64-msys2-with-Service\redis-data
现在,程序已经正常运行了
再新打开一个 cmd 窗口
你可以再新打开一个 cmd 窗口(无需管理员身份),在新的 cmd 窗口里,执行下面的命令进入目录:
bash
cd D:\Redis\Redis-8.8.0-Windows-x64-msys2-with-Service
然后,你就可以在这个使用下面的命令练习 redis 命令:
例如:
往 redis 中 设置 key = mykey ,value=aaa :
bash
redis-cli SET mykey aaa
获取 key = mykey 的值 :
bash
redis-cli GET mykey
关闭程序:
basg
redis-cli SHUTDOWN
关闭程序后,你可以关闭这两个 cmd 窗口,当你下次再运行时,你redis里的数据依然存在,执行 redis-cli GET mykey 获取到的依然会是 aaa ,并没有丢失,因为 在运行程序时已经通过 --dir D:\Redis\Redis-8.8.0-Windows-x64-msys2-with-Service\redis-data将运行中的数据持久化保存了。
2.后台模式运行
以管理员身份打开一个 cmd 窗口
然后执行下面的命令进入目录:
bash
cd D:\Redis\Redis-8.8.0-Windows-x64-msys2-with-Service
然后执行下面的命令以后台模式启动程序:
bash
RedisService.exe install -c D:\Redis\Redis-8.8.0-Windows-x64-msys2-with-Service\redis.conf --dir D:\Redis\Redis-8.8.0-Windows-x64-msys2-with-Service\redis-data --port 6379
现在,程序已经正常运行了,意味着你本地的 redis 服务已经启动
本地项目调用
现在,你可以在你本地项目中调用你本地的 redis 服务了.
例如:
我使用 spring boot
依赖:
xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!-- 用于生成excel文件-->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
</dependency>
yaml 配置文件如下:
yaml
spring:
redis:
host: localhost
port: 6379
timeout: 10000ms
database: 0
lettuce:
pool:
max-active: 8
max-wait: 3000ms
max-idle: 8
min-idle: 0
Java 代码:
java
@Autowired
private RedisTemplate redisTemplate;
public void redisMapTest() {
Map<String, Object> userMap = new HashMap<>();
userMap.put("name", "Tom");
userMap.put("age", 18);
redisTemplate.opsForHash().putAll("userMap", userMap);
//redis 中获取 map 中指定的 key值
String name = (String) redisTemplate.opsForHash().get("userMap", "name");
System.out.println(name);
//redis 中获取 map1 中所有的 key
Set<String> resultMapSet = redisTemplate.opsForHash().keys("userMap");
System.out.println(resultMapSet);
//redis 中获取 map1 中所有的 value
List<String> reslutMapList = redisTemplate.opsForHash().values("userMap");
System.out.println(reslutMapList);
}
输出:
java
Tom
[name, age]
[Tom, 18]