Spring Data Redis实战:单机环境搭建与五大数据类型简单操作

一、连接 Redis 单机
1.1、创建项目
创建SpringBoot项目,添加Spring Data Redis依赖(也可在项目pom文件中添加)

1.2、配置redis服务地址

1.3、SSH隧道建立
打开XSHELL,点击会话的属性



二、Redis的上手操作

2.1、StringRedisTemplate
StringRedisTemplate 是 Spring Data Redis 提供的模板类,专门用于处理 Redis 中的字符串类型键值存储操作,其将操作Redis的方法封装分为几个类别来使用,下面引入StringRedisTemplate 实例
@RestController
public class Rediscontroller {
@Autowired
private StringRedisTemplate stringRedisTemplate;
}
可看到,该类提供了操作Redis所有类型的方法,我们可以根据所需类型,进行选择使用

2.2、String类型
@RequestMapping("/string/test")
public String stringTest() {
stringRedisTemplate.opsForValue().set("string1", "test");
String value = stringRedisTemplate.opsForValue().get("string1");
System.out.println("从Redis中获取到的value为:"+value);
return "value:"+value;
}

通过Redis可视化插件Redis Helper(需要可下载),可以看到,Redis中存储了该键值对

Redis Helper教程:
搜索下载
点击 redis helper 后,第一次使用需要新增,点击+即可,出现下面图片
填写以上信息后,即可出现Redis可视化界面,如下:
该插件可手动删除键值对等其他操作,读者可以寻找对应博客学习使用
2.3、List类型
创建4个列表,list1、list2、list等,分别插入元素,list中插入多个元素,range()即获取该列表的所有元素,0表示起始,-1表示结尾
@RequestMapping("/list/test")
public String listTest() {
stringRedisTemplate.opsForList().leftPush("list1", "1");
stringRedisTemplate.opsForList().leftPush("list2", "2");
stringRedisTemplate.opsForList().leftPush("list3", "3");
stringRedisTemplate.opsForList().leftPushAll("list","111","222","333");
List<String> list = stringRedisTemplate.opsForList().range("list", 0, -1);
System.out.println(list);
return "list:"+list;
}

2.4、Hash类型
@RequestMapping("/hash/test")
public String hashTest() {
stringRedisTemplate.opsForHash().put("hash_key", "key1", "value1");
String value=(String)stringRedisTemplate.opsForHash().get("hash_key", "key1");
System.out.println(value);
stringRedisTemplate.opsForHash().delete("hash_key", "key1");
String value_isNull=(String)stringRedisTemplate.opsForHash().get("hash_key", "key1");
System.out.println(value_isNull);
return "okk";
}

Redis中hash类型结构如下:我们新增了一个hash_key,value为(field)key1 : (value) value1,对key(hash_key)中的field(key1)进行取值,返回的是value1,接着删除这个key1,然后再进行获取,value就为null了

2.5、Set类型
@RequestMapping("/set/test")
public String setTest() {
stringRedisTemplate.opsForSet().add("set", "value1", "value2", "value3");
Boolean b1=stringRedisTemplate.opsForSet().isMember("set", "value1");
Boolean b2=stringRedisTemplate.opsForSet().isMember("set", "value4");
System.out.println("value1是否存在:"+b1+" ,value4是否存在:"+b2);
stringRedisTemplate.opsForSet().remove("set", "value1");
Long size=stringRedisTemplate.opsForSet().size("set");
System.out.println("移除后value1还剩几个元素:"+size);
return "okk";
}
向集合set里面添加3个value,isMember()是判断该value是否在集合中,remove()作用:将value从set集合中移除,size()作用大家都清楚判断集合中还有几个元素

2.6、ZSet
ZSet 是有序集合,每个元素都有一个分数用于排序,且元素唯一不可重复
@RequestMapping("/zset/test")
public String zsetTest() {
stringRedisTemplate.opsForZSet().add("zset","喜羊羊",99);
stringRedisTemplate.opsForZSet().add("zset","懒洋洋",66);
stringRedisTemplate.opsForZSet().add("zset","小灰灰",78);
Set<String> value= stringRedisTemplate.opsForZSet().range("zset", 0, -1);
System.out.println(value);
long size=stringRedisTemplate.opsForZSet().count("zset",70,100);
System.out.println(size);
return "okk";
}


更多推荐






所有评论(0)