https://github.com/lework/RedisDesktopManager-Windows/releases
string、hash、List、Set、SortedSet
127.0.0.1:6379> set heima:user:1 '{"id":1,"name":"Jack","age":18}'
OK
127.0.0.1:6379> set heima:user:2 '{"id":1,"name":"Rose","age":18}'
OK
127.0.0.1:6379> set heima:product:1 '{"id":1,"name":"honor6"}'
OK
127.0.0.1:6379> HSET heima:user:3 name Lucy
(integer) 1
127.0.0.1:6379> HGET heima:user:3 name
"Lucy"
127.0.0.1:6379> HMSET heima:user:4 name HanMeiMei age 20 sex man
OK
127.0.0.1:6379> LPUSH users 1 2 3
(integer) 3
127.0.0.1:6379> RPUSH users 4 5 6
(integer) 6
127.0.0.1:6379> sadd s1 a b c
(integer) 3
127.0.0.1:6379> SMEMBERS s1
1) "c"
2) "b"
3) "a"
127.0.0.1:6379> zadd stus 85 Jack 89 Lucy 82 Miles
(integer) 3
spring:
data:
redis:
host: localhost
port: 6379
password:
lettuce:
pool:
max-active: 8
max-idle: 8
min-idle: 0
max-wait: 100
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
第一种
@Configuration
public class RedisConfig {
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory connectionFactory) {
// 创建 RedisTemplate 对象
RedisTemplate<String, Object> template = new RedisTemplate<>();
// 设置连接工厂
template.setConnectionFactory(connectionFactory);
// 创建 JSON 序列化工具
GenericJackson2JsonRedisSerializer jsonRedisSerializer = new GenericJackson2JsonRedisSerializer();
// 设置 key 的序列化
template.setKeySerializer(RedisSerializer.string());
template.setHashKeySerializer(RedisSerializer.string());
// 设置 value 的序列化
template.setValueSerializer(jsonRedisSerializer);
template.setHashValueSerializer(jsonRedisSerializer);
// 返回
return template;
}
}
第二种(推荐,但是需要手动序列化)
为了节省内存空间,通常并不会使用 JSON 序列化器来处理 value,而是统一使用 String 序列化器,要求只能存储 String 类型的 key 和 value,当需要存储 Java 对象时,手动完成对象的序列化和反序列化。
Spring 默认提供了一个 StringRedisTemplate 类,它的 key 和 value 的序列化方式默认就是 String 方式。省去了自定义 RedisTemplate 的过程。
1、首先,注入 StringRedisTemplate 类
@Test
void testString() {
// 写入一条 String 数据
stringRedisTemplate.opsForValue().set("name", "华仔仔");
// 获取 String 数据
Object name = stringRedisTemplate.opsForValue().get("name");
System.out.println("name = " + name);
}
2、编写测试
@PostConstruct
private void test2() throws JsonProcessingException {
User user = new User("lst", 25);
//手动序列化
String json = mapper.writeValueAsString(user);
//写入一条数据到redis
redisTemplate.opsForValue().set("user:200", json);
//读取数据
String val = redisTemplate.opsForValue().get("user:200");
//手动反序列化
User user1 = mapper.readValue(val, User.class);
System.out.println("user1=" +user1);
}