版权声明:本文为 小异常 原创文章,非商用自由转载-保持署名-注明出处,谢谢!
本文网址:https://sunkuan.blog.csdn.net/article/details/107309580
根据上一篇 《Spring Boot 整合 Redis 基本 CRUD 操作》,相信大家对整合操作已经有了一定的了解,本篇主要将针对 Redis 中的五种数据类型进行基本操作。
一、字符串操作
String类型 是 Redis 中最基本的数据类型,一个 key 对应一个 value 。
@GetMapping("/string")
public String stringTest() {
redisTemplate.opsForValue().set("str", "hello redis");
String str = (String) redisTemplate.opsForValue().get("str");
return str;
}
二、列表操作
List类型 是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。
@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); // 取 key 值为 list 的索引0到索引2的list
return list;
}
三、集合操作
Set类型 是 String类型 的无序集合。它的特点是无序且唯一,它是通过哈希表实现的,所以添加、删除、查找的复杂度都是 O(1)。
@GetMapping("/set")
public Set<String> setTest() {
SetOperations<String, String> setOperations = redisTemplate.opsForSet();
setOperations.add("set", "hello");
setOperations.add("set", "world");
setOperations.add("set", "world");
setOperations.add("set", "java");
Set<String> set = setOperations.members("set"); // 取 set
return set;
}
四、有序集合操作
ZSet类型 和 Set类型 一样也是 String类型 元素的集合,且不允许有重复的成员。不同的是每个元素都会关联一个 double类型 的分数。它正是通过分数来为集合中的成员进行从小到大的排序。ZSet类型 的成员是唯一的,但分数(score) 却可以重复。
@GetMapping("/zset")
public Set<String> zsetTest() {
ZSetOperations<String, String> zSetOperations = redisTemplate.opsForZSet();
zSetOperations.add("zset", "java", 1);
zSetOperations.add("zset", "hello", 3);
zSetOperations.add("zset", "world", 2);
Set<String> set = zSetOperations.range("zset", 0, 2);
return set;
}
五、哈希操作
Hash类型 是一个键值对的集合。它是一个 String类型 的 field 和 value 组合的映射表,它特别适合用于存储对象。
@GetMapping("/hash")
public String hashTest() {
HashOperations<String, String, String> hashOperations = redisTemplate.opsForHash();
hashOperations.put("key", "hashkey1", "hello");
hashOperations.put("key", "hashkey2", "world");
hashOperations.put("key", "hashkey3", "java");
return hashOperations.get("key", "hashkey2");
}