下载链接https://github.com/MicrosoftArchive/redis/releases/tag/win-3.2.100
application.yml中
- spring:
- redis:
- host: localhost #默认就是localhost
- port: 6379 #默认就是6379
RedisTemplate以对象作为key和value,内部对数据进行序列化。
客户端默认是以字符串作为键值对进行存储和读取,这种方式不能读取在客户端存储的信息,客户端也不能读出程序所写入的信息。
- @SpringBootTest()
- class Xin1ApplicationTests {
-
- @Autowired
- private RedisTemplate redisTemplate; //操作Redis的对象,默认以对象为key-value
-
- @Test
- void set(){
- //存储键值对
- ValueOperations ops = redisTemplate.opsForValue();
- ops.set("age",33);
-
- //存储键对(键值对)
- HashOperations hash = redisTemplate.opsForHash();
- hash.put("info", "msg", "world");
- hash.put("info", "msg2", "world2");
- }
-
- @Test
- void contextLoads() {
- //读取键值对
- ValueOperations ops = redisTemplate.opsForValue();
- System.out.println(ops.get("age"));
-
- //读取键对(键值对)
- HashOperations hash = redisTemplate.opsForHash();
- System.out.println(hash.get("info", "msg"));
- System.out.println(hash.get("info", "msg2"));
- }
- }
在客户端查看在程序中保存的key-value会发现写进去的值是序列化之后的。
这种方式可以读取在客户端中存储的信息,也可以在客户端中读取程序所写的信息。
如果只使用字符类型的键值对,推荐使用!
- @SpringBootTest()
- class Xin1ApplicationTests {
-
- @Autowired
- private StringRedisTemplate redis; //默认以字符串类型的键值对
-
- @Test
- void set(){
- //存储键值对
- ValueOperations
ops = redis.opsForValue(); - ops.set("age","33");
-
- //存储键对(键值对)
- HashOperations
hash = redis.opsForHash(); - hash.put("info", "msg", "world");
- hash.put("info", "msg2", "world2");
- }
-
- @Test
- void contextLoads() {
- //读取键值对
- ValueOperations
ops = redis.opsForValue(); - System.out.println(ops.get("age"));
-
- //读取键对(键值对)
- HashOperations
hash = redis.opsForHash(); - System.out.println(hash.get("info", "msg"));
- System.out.println(hash.get("info", "msg2"));
- }
- }
默认使用的Lettuce作为客户端。
Jedis是同步的,不支持异步,Jedis客户端实例不是线程安全的,需要每个线程一个Jedis实例,一般通过连接池来使用Jedis。
Lettuce是基于Netty框架的事件驱动的Redis客户端,其方法调用是异步的,Lettuce的API也是线程安全的,所以多个线程可以操作单个Lettuce连接来完成各种操作,同时Lettuce也支持连接池。
添加依赖
- <dependency>
- <groupId>redis.clientsgroupId>
- <artifactId>jedisartifactId>
- dependency>
配置redis
- spring:
- redis:
- host: localhost
- port: 6379
- client-type: jedis