搭建Redis环境
Redis的基本概念
- 基于内存进行存储,支持 
key-value的存储形式,底层采用C语言编写 - 基于 
key-value形式的数据字典,结构简单,没有数据表的概念,直接用键值对的形式完成数据的管理 - 支持5种数据类型:
    
- 字符串
 - 列表
 - 集合
 - 有序集合
 - 哈希
 
 
安装与启动Redis
window下的教程:Window下Redis的安装和部署详细图文教程(Redis的安装和可视化工具的使用)_redis安装-CSDN博客
Spring Boot 整合 Redis
- 创建Spring Boot工程
 - 导入Redis依赖
 - 如果想要将实体类(POJO类)存到Redis里面,那么POJO类就要实现序列化接口(serializable)
 - SpringBoot配置文件中配置Redis数据库基本信息
 
Redis的增删改查
@RestController
public class StudentHandler {
    @Autowired
    private RedisTemplate redisTemplate;
    
    @PostMapping("/set")
    public void set(@RequestBody Student student) {
        redisTemplate.opsForValue().set("student", student);
    }
    
    @GetMapping("/get/{key}")
    public Student get(@PathVariable("key") String key) {
        return (Student) redisTemplate.opsForValue().get(key);
    }
    
    @DeleteMapping("/delete/{key}")
    public boolean delete(@PathVariable("key") String key) {
        redisTemplate.delete(key);
        return redisTemplate.hasKey(key);
    }
}
操作字符串
@GetMapping("/string")
public String stringTest() {
    redisTemplate.opsForValue().set("str", "Hello World");
    String str = (String) redisTemplate.opsForValue().get("str");
    return str; // Hello World
}
操作列表
@GetMapping("/list")
public List<String> listTest() {
   ListOperations<String, String> listOperations = redisTemplate.opsForList();
   listOperations.leftPush("list", "Hello");
   listOperations.leftPush("list", "World");
   listOperations.leftPush("list", "Java");
   List<String> list = listOperations.range("list", 0, 2);
   return list;  // Java World Hello
}
操作集合
@GetMapping("/set")
public Set<String> setTest() {
   SetOperations<String, String> SetOperations = redisTemplate.opsForSet();
   SetOperations.add("Set", "Hello");
   SetOperations.add("Set", "Hello");
   SetOperations.add("Set", "World");
   SetOperations.add("Set", "World");
   SetOperations.add("Set", "Java");
   SetOperations.add("Set", "Java");
   Set<String> set = SetOperations.members("set");
   return set;  // Java World Hello
}
操作有序集合
@GetMapping("/zset")
public Set<String> zsetTest() {
   zSetOperations<String, String> zSetOperations = redisTemplate.opsForZSet();
   zSetOperations.add("Set", "Hello", 1);
   zSetOperations.add("Set", "World", 2);
   zSetOperations.add("Set", "Java", 3);
   Set<String> set = zSetOperations.members("zset", 0, 2);
   return set;  // Java World Hello
}
操作哈希
HashMap key value
HashOperations key hashkey value
key 是每一组数据的ID, hashkey 和 value 是一组完整的 ` HashMap  数据,通过 key 来区分不同的 HashMap`
HashMap hashMap1 = new HashMap();
hashMap1.put(key1, value1);
HashMap hashMap2 = new HashMap();
hashMap2.put(key2, value2);
HashMap hashMap3 = new HashMap();
hashMap3.put(key3, value3);
HashOperations<String, String, String> hashOperations = redisTemplate.opsForHash();
hashOperations.put(hashMap1, key1, value1);
hashOperations.put(hashMap2, key2, value2);
hashOperations.put(hashMap3, key3, value3);
sout(hashOperations.get(hashMap1, key1);