搭建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);