一、Redis的基本数据类型(jedis操作类型数据)
1、导入依赖(导入Redis依赖,让项目支持使用Redis)
org.springframework.boot
spring-boot-starter-data-redis
redis.clients
jedis
2.9.0
2、创建一个普通Java类,导入Jedis并完成基本配置
3、类型演示
(1)jedis操作String类型数据
/*** jedis操作String类型数据*/@Testpublic voidoperationString(){//切换到数据库
jedis.select(1);//设置一个String类型的key-value(添加数据)
jedis.set("strKey01","strValue01");//设置key的有效时间//jedis.expire("strKey01",20);//获取String数据
String value = jedis.get("strKey01");
System.out.println("对应存放的value值为:"+value);//修改数据
jedis.set("strKey01","strValue02");//删除数据
jedis.del("strKey01");//设置多个值
jedis.mset("strKey01","strValue01","strKey02","strValue01","strKey03","strValue03","strKey04","1");//+1操作
jedis.incr("strKey04");//-1操作
jedis.decr("strKey04");//拼接
jedis.append("strKey04","append");
}
执行效果如下
(2)jedis操作List类型数据
/*** jedis操作List类型数据*/@Testpublic voidoperationList(){//清空集合值
jedis.del("listkey01","listkey02");//设置List集合值,左侧插入
jedis.lpush("listkey01","张三","李四","王五");//设置List集合值,右侧插入
jedis.rpush("listkey02","北京","上海","广州");//过去List集合值
List listkey01 = jedis.lrange("listkey01", 0, -1);for(String item:listkey01){
System.out.println(item);
}//更改List集合数据
jedis.lset("listkey01",0,"赵六");
}
执行结果如下
(3)jedis操作Set类型数据
/*** jedis操作Set类型数据*/@Testpublic voidoperationSet(){//切换到数据库
jedis.select(2);//设置Set集合
jedis.sadd("setkey01","张三","李四","王五");//获取
Set setkey01 = jedis.smembers("setkey01");for(String item:setkey01){
System.out.println(item);
}
}
执行结果如下
(4)jedis操作SortedSet(有序set集合)类型数据
/*** jedis操作SortedSet(有序set集合)类型数据*/@Testpublic voidoperationSortedSet(){//切换到数据库
jedis.select(2);//设置SortedSet集合
jedis.zadd("setkey02",1,"北京");
jedis.zadd("setkey02",1,"上海");
jedis.zadd("setkey02",1,"广州");//获取SortedSet
Set setkey02 = jedis.zrange("setkey02", 0, -1);for(String item:setkey02){
System.out.println(item);
}
}
执行结果如下
(5)jedis操作Map类型数据
/*** jedis操作Map类型数据*/@Testpublic voidoperationMap(){//切换到数据库
jedis.select(3);//设置Map
Map map=new HashMap<>();
map.put("name","张三");
map.put("age","18");
jedis.hmset("mapkey01",map);//获取值
List value = jedis.hmget("mapkey01", "name", "age");for(String item:value){
System.out.println(item);
}
执行结果如下
二、只用Java操作Redis
1、导入依赖
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-parent
2.2.1.RELEASE
org.springframework.boot
spring-boot-starter-data-redis
2、配置Application.yml文件
3、创建SpringBootRedis类
packagecom.jedis.service;importorg.springframework.data.redis.core.StringRedisTemplate;importorg.springframework.stereotype.Service;importjavax.annotation.Resource;importjava.util.List;importjava.util.Map;importjava.util.Set;importjava.util.concurrent.TimeUnit;
@Servicepublic classSpringBootRedis {
@ResourceprivateStringRedisTemplate stringRedisTemplate;public voidset(String key,Object value){if (value instanceofString){//200L, TimeUnit.SECONDS:用来设置时间,TimeUnit.SECONDS相当于设置单位//stringRedisTemplate.opsForValue().set(key,(String)value,200L, TimeUnit.SECONDS);
stringRedisTemplate.opsForValue().set(key,(String)value);
}else if(value instanceofList){
List list=(List)value;for(String item:list){
stringRedisTemplate.opsForList().leftPush(key,item);
}
}else if (value instanceofSet){
String[] objects= (String[]) ((Set) value).toArray(newString[((Set) value).size()]);
stringRedisTemplate.opsForSet().add(key,objects);
}else if (value instanceofMap){
stringRedisTemplate.opsForHash().putAll(key,(Map,?>) value);
}
}
}
4、创建controller类
packagecom.jedis.controller;importcom.jedis.service.SpringBootRedis;importorg.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.RequestMapping;importjavax.annotation.Resource;importjavax.servlet.http.HttpServletResponse;import java.util.*;
@Controllerpublic classRedisController {
@ResourceprivateSpringBootRedis springBootRedis;
@RequestMapping ("/setString")public voidsetString(HttpServletResponse response){
springBootRedis.set("strkey","strvalue");
}
@RequestMapping("/setList")public voidsetList(HttpServletResponse response){
List stringList=new ArrayList<>();
stringList.add("张三");
stringList.add("李四");
stringList.add("王五");
springBootRedis.set("listkey",stringList);
}
@RequestMapping("/setSet")public voidsetSet(HttpServletResponse response){
Set set=new HashSet<>();
set.add("北京");
set.add("上海");
springBootRedis.set("setkey",set);
}
@RequestMapping("/setMap")public voidsetMap(HttpServletResponse response){
Map map=newHashMap();
map.put("name","张三");
map.put("age","18");
springBootRedis.set("mapkey",map);
}
}
5、创建启动类StartApplication
packagecom.jedis;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplicationpublic classStartApplication {public static voidmain(String[] args){
SpringApplication.run(StartApplication.class,args);
}
}
6、实现效果如下
(1)http://localhost:8080/setString
(2)http://localhost:8080/setList
(3)http://localhost:8080/setSet
(4)http://localhost:8080/setMap