redis基础学习
2024-01-09 16:43:27
redis可视化界面下载
https://github.com/lework/RedisDesktopManager-Windows/releases
redis数据类型
string、hash、List、Set、SortedSet
key的结构
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
hash类型的操作
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
push类型的操作
127.0.0.1:6379> LPUSH users 1 2 3
(integer) 3
127.0.0.1:6379> RPUSH users 4 5 6
(integer) 6
set类型
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"
SortedSet
127.0.0.1:6379> zadd stus 85 Jack 89 Lucy 82 Miles
(integer) 3
Java Redis初使用
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>
序列化方式
RedisTemplate 的两种序列化方式
- 自定义 RedisTemplate 进行序列化
- 使用 StringRedisTemplate 进行序列化
第一种
@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);
}
SpringRedisTemplate操作hash类型
文章来源:https://blog.csdn.net/weixin_43914278/article/details/135479762
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!