10.String类型
11.key的结构
set travel:user:2 '{"id":2,"name":"nsy","age":18}'
层级结构
如果发现不需要密码也能操作redis,就是没有指定 -p 为设置好的 6380,
应该这样:
redis-cli -p 6380
12.Hash类型
使用Hash类型就是在Value里面再嵌套任意个键值对
HSET存入
html
HSET travel:user:4 name lucy
HSET travel:user:4 age 18
对Hash里某个key对应的值进行修改
再HSET一次即可
也可以直接设置多个子键值对:
HSET travel:user:5 name nsy age 18 height 1.8
获取值:HGET(只能获取单个字段)
HMGET(获取多个字段)
13.List类型
LPUSH :从左边插入
RPUSH :从右边插入
可以看见是3 2 1,因为我用的是LPUSH,先插1,再在1的左边插2,再在2的左边插3
而RPUSH就是相反的
14.SET类型
s1和s2的差集 :s1集合中有但s2集合中没有的值
15.SortedSet类型
SortedSet类型可排序的set集合,类似于jvava中的TreeSet,但是底层数据结构差别很大
16.StringRedisTemplate
使用StringRedisTemplate能在Idea中对redis里面的数据进行一些操作
与RedisTemplate不同的是,StringRedisTemplate不能自动化完成序列化与反序列化,需要我们手动转化
,这样做的优点是节省空间。
具体步骤:
java
@SpringBootTest
class RedisDemoApplicationTests {
private static final ObjectMapper objectmapper = new ObjectMapper();
@Autowired
private StringRedisTemplate stringRedisTemplate;
@Test
void contextLoads() throws JsonProcessingException {
//定义数据
User user = new User("胡歌",31);
//序列化数据
String json =objectmapper.writeValueAsString(user);
//使用stringRedisTemplate的方法存数据
stringRedisTemplate.opsForValue().set("travel:user:200",json);
//获取数据
String jsonuser = stringRedisTemplate.opsForValue().get("travel:user:200");
//反序列化
User user1 = objectmapper.readValue(jsonuser,User.class);
System.out.println("user1 = " + user1);
}
}