- 1.初识Redis
- 1.1安装
- 1.2数据结构
- 1.2.1 通用命令
- 1.2.2 String类型
- key的结构
- 1.2.3 Hash类型
- 2.Jedis
- 2.1 添加依赖及配置
- 2.2 配置StringRedisTemplte
1.初识Redis
Redis是一个基于内存的键值型NoSQL数据库。其具有性能优越、持久化的特点,能够支持每秒十几万次的读写操作。
1.1安装
安装成功:
1.2数据结构
Redis是一个key-value的数据库。
key:“String”,
value:通常是一个字符串
查阅网址:redis命令手册
1.2.1 通用命令
KEYS:查看符合模板的所有key
DEL:删除一个指定的key
EXISTS:判断key是否存在
EXPIRE:给一个key设置一个有效期,有效期到时会被自动删除
TTL:查看一个key的剩余有效期
…
1.2.2 String类型
其在底层是以字节数组形式存储的。
key的结构
key可以设置为多个单词组成的层级结构,用:
隔开
例如:project:user:1
1.2.3 Hash类型
结构:Hash结构可以将对象中的每个字段独立存储
- List类型
- Set类型
- SortedSet类型
- …
2.Jedis
在Java项目中使用Redis步骤如下。
2.1 添加依赖及配置
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
spring:
redis:
host: 192.168.1.158
port: 6379
password: 123456
lettuce:
pool:
max-active: 10
max-idle: 10
min-idle: 1
time-between-eviction-runs: 10s
2.2 配置StringRedisTemplte
在spring中,将对象存入Redis中需要将其序列化,其序列化有两种方式:
两种序列化实践方案:
-
自定义RedisTemplate,修改RedisTemplate的序列化器为GenericJacksonRedisSerializer
-
使用StringRedisTemplate,写入Redis时,手动把读取到的JSON反序列化为对象。(节省内存)
@Autowired private StringRedisTemplate stringRedisTemplate; // JSON工具 private static final ObjectMapper mapper = new ObjectMapper(); @Test void testStringTemplate() throws JsonProcessingException { //准备对象 User user = new User("虎哥", 18); //手动序列化 String json = mapper.writeValueAsString(user); //写入一条数据到redis stringRedisTemplate.opsForValue().set("user:200", json); /读取数据 String val = stringRedisTemplate.opsForValue().get("user:200"); //反序列化 User user1 = mapper.readValue(val, User.class); System.out.println("user1 = " + user1); }