在基础篇的最后,咱们对Hash结构操作一下,收一个小尾巴。
opsForValue()
拿到的是对字符串的操作,opsForHash()
拿到的就是跟哈希有关的操作。
PS:在spring中并不是以命令作为方法名,方法名类似于Java的HashMap的方法名。
hashKey和value就是对应字段和字段值,事实上value中可能会有多个字段,一个 put()
只能存一个字段,如果有多个字段,put()
就需要执行多次,这样其实就不太好了,等于你是与服务器做多次交互。
因此推荐大家的方案是使用 putAll()
, putAll()
相当于 hmset
,里面可以存好几个键值对。
@SpringBootTest
class RedisStringTests {
@Autowired
private StringRedisTemplate stringRedisTemplate;
@Test
void testHash() {
stringRedisTemplate.opsForHash().put("user:400", "name", "虎哥");
stringRedisTemplate.opsForHash().put("user:400", "age", "21");
// 取一个字段是get方法,取好多字段是entries方法,Java是entrySet方法,也是类似的。
// values方法就是获取里面的值
Map<Object, Object> entries = stringRedisTemplate.opsForHash().entries("user:400");
System.out.println("entries = " + entries);
}
}
运行代码,可以发现插入成功